Vai all'ultimo messaggio della discussione Vai all'ultimo messaggio  

7 pagine: [1] 2 3 4 5 6 7 Avanti >>


lettura campo del DB (per invio mail)
ricardo78
ricardo78 non è online. Ultima attività: 05/07/2009 9.37.26ricardo78
il 27 ottobre 2008 alle 19.49
www.vicenzasoftware.com | 728 messaggi dal 27 dicembre 2006
Ciao!

Come posso realizzare, all'interno di una pagina che invia delle mail, uno script per la lettura di un campo del db (dove trovo l'indirizzo mail del destinatario) affinche questo venga messo come destinatario (scusate il gioco di parole) della mail?

mi basterebbe anche vedere qualche tutorial o esempio di chi l'ha gia realizzato...

grazie 1000!


«Ric@rdo ß.»
"E' nella semplicita' che sono racchiuse le grandi idee"
RE: lettura campo del DB (per invio mail)
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 27 ottobre 2008 alle 20.27
la procedura di lettura dal database è sempre la stessa..
crei la connessione
crei il comando
leggi i dati

se usi sql server, puoi utilizzare le classe del namespace System.Data.SqlClient, se invece usi Access, il namespace da utilizzare è System.Data.OleDb

in linea di massima quindi puoi scrivere una cosa del genere:

using(SqlConnection conn = new SqlConnection(stringaDiConnessione))
{
   using(SqlCommand cmd = new SqlCommand)
   {
      cmd.CommandText = "SELECT * FROM ...";
      cmd.Connection = conn;
      conn.Open();
      SqlDataReader reader = cmd.ExecuteReader();
      while(reader.Read())
      {
         MailMessage mail = new MailMessage("da me", reader["CampoDelDB"].ToString(), "soggetto", "corpo");
         SmtpClient client = new SmtpClient("server smtp");
         client.Send(mail);
      }
      reader.Close();
   }
}


l'ho scritto così al volo.. non lo prendere come "legge"

Marchi Giuseppe
http://www.peppedotnet.it
RE: lettura campo del DB (per invio mail)
ricardo78
ricardo78 non è online. Ultima attività: 05/07/2009 9.37.26ricardo78
il 27 ottobre 2008 alle 20.38
www.vicenzasoftware.com | 728 messaggi dal 27 dicembre 2006
Intanto ti ringrazio per la risp!!

Ma posso farlo anche se uso un AccessDataSource invece che la connessione da script? se si, in che modo?

ti posto lo script a cui sto lavorando, magari riesci a vedere meglio quello che sto facendo:



public void sendEmail_Click(object sender, EventArgs e)
    {


        MailMessage mail = new MailMessage();

        //mittente:
        mail.From = new MailAddress("staff@PalladioViaggi.com", "Staff PalladioViaggi.com");

        //Destinatario:
        mail.To.Add(new MailAddress(txtTo.Text));  qui il dato viene attualmente preso da un campo testo
        
        //Oggetto:
        mail.Subject = txtSubject.Value;
        mail.SubjectEncoding = System.Text.Encoding.GetEncoding("iso-8859-15");

        //corpo della mail:
        mail.Body = ..... ;
        mail.BodyEncoding = System.Text.Encoding.GetEncoding("iso-8859-15");
        mail.IsBodyHtml = true;

        // invio:
        SmtpClient server = new SmtpClient();
        server.Host = "smtp.palladioviaggi.com";
        server.Send(mail);


        lblAvviso.InnerHtml = "E-mail inviata con successo!";


        // salvo tutto nel db
        DbNewsletter.Insert();

        txtNome.Text = "";
        txtCognome.Text = "";
        //txtTel.Text = "";
        txtTo.Text = "";
        txtBody.Text = "";
        txtSubject.Value = "";




    }
</script>



spero che sia abbastanza esplicativo lo script....

«Ric@rdo ß.»
"E' nella semplicita' che sono racchiuse le grandi idee"
RE: lettura campo del DB (per invio mail)
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 27 ottobre 2008 alle 20.47
no, con un AccessDataSource non puoi fare quello che chiedi.
però puoi modificare il tuo script così:



public void sendEmail_Click(object sender, EventArgs e)
{
        using(OleDbConnection conn = new OleDbConnection("Stringa di connession"))
        {
        using(OleDbCommand cmd = new OleDbCommand())
        {

        cmd.Connection = conn;
        cmd.CommandText = "SELECT * FROM ....";
        OleDbDataReader reader = cmd.ExecuteReader();
        while(reader.Read())
        {
        MailMessage mail = new MailMessage();

        //mittente:
        mail.From = new MailAddress("staff@PalladioViaggi.com", "Staff PalladioViaggi.com");

        //Destinatario:
        string destinatario = String.Format("{0}", reader["CampoDelDB"]);
        mail.To.Add(new MailAddress(destinatario));
        
        //Oggetto:
        mail.Subject = txtSubject.Value;
        mail.SubjectEncoding = System.Text.Encoding.GetEncoding("iso-8859-15");

        //corpo della mail:
        mail.Body = ..... ;
        mail.BodyEncoding = System.Text.Encoding.GetEncoding("iso-8859-15");
        mail.IsBodyHtml = true;

        // invio:
        SmtpClient server = new SmtpClient();
        server.Host = "smtp.palladioviaggi.com";
        server.Send(mail);
        }

        }
        }


        lblAvviso.InnerHtml = "E-mail inviata con successo!";


        // salvo tutto nel db
        DbNewsletter.Insert();

        txtNome.Text = "";
        txtCognome.Text = "";
        //txtTel.Text = "";
        txtTo.Text = "";
        txtBody.Text = "";
        txtSubject.Value = "";

}

Marchi Giuseppe
http://www.peppedotnet.it
RE: lettura campo del DB (per invio mail)
ricardo78
ricardo78 non è online. Ultima attività: 05/07/2009 9.37.26ricardo78
il 27 ottobre 2008 alle 20.55
www.vicenzasoftware.com | 728 messaggi dal 27 dicembre 2006
scusa la domanda banalissima, ma non usando quasi mai questo tipo di connessione, la srtinga scritta cosi è corretta?

       using(OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=~/app_data/newsletter.mdb"))

«Ric@rdo ß.»
"E' nella semplicita' che sono racchiuse le grandi idee"
RE: lettura campo del DB (per invio mail)
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 27 ottobre 2008 alle 21.07
no, perchè la tilde non viene letta.
o metti il percorso intero, oppure lo calcoli tramite il metodo Server.MapPath

string connectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}\newsletter.mdb", Server.MapPath("~/app_data"));

Marchi Giuseppe
http://www.peppedotnet.it
RE: lettura campo del DB (per invio mail)
ricardo78
ricardo78 non è online. Ultima attività: 05/07/2009 9.37.26ricardo78
il 27 ottobre 2008 alle 21.21
www.vicenzasoftware.com | 728 messaggi dal 27 dicembre 2006
ok, grazie, domani lo riprendo per debuggarlo, (sto trovando qualche errorino qua e la, ma penso che ho sbagliato io qualcosa), adesso mi stacco dal pc altrimenti saranno le mie retine a staccarsi!

razie per l'aiuto, ti faro sapere sugli eventuali sviluppi...

ciauz!

«Ric@rdo ß.»
"E' nella semplicita' che sono racchiuse le grandi idee"
RE: lettura campo del DB (per invio mail)
ricardo78
ricardo78 non è online. Ultima attività: 05/07/2009 9.37.26ricardo78
il 28 ottobre 2008 alle 20.07
www.vicenzasoftware.com | 728 messaggi dal 27 dicembre 2006
Ciao Giuseppe, non sono riuscito ancora a risolvere il problema. Al momento in cui ti scrivo ho scritto questo codice:


    public void sendEmail_Click(object sender, EventArgs e)
    {
        using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=/app_data/" + Server.MapPath("newsletter.mdb")))

        {
            using (OleDbCommand cmd = new OleDbCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = "SELECT * FROM contatti";
                OleDbDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {

...
...


Non mi da piu nessun errore, ma non so nemmeno come associare il CheckBox che si trova in un dataList con l'indirizzo estratto dal db, in realtà non so nemmeno se il codice fin qui scritto sia corretto...! aiuto!

ahimè, appena posso mi fo il corso di asp.net di aspItalia...
Modificato da ricardo78 il 28 ottobre 2008 20.21 -

«Ric@rdo ß.»
"E' nella semplicita' che sono racchiuse le grandi idee"

7 pagine: [1] 2 3 4 5 6 7 Avanti >>

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9