118 messaggi dal 13 aprile 2007
string sql = "SELECT * FROM MAILINGLIST";
OleDbCommand comm = new OleDbCommand(sql, con);
if (con.State == ConnectionState.Closed)
con.Open();
OleDbDataReader dr = comm.ExecuteReader();
string destinatari = string.Empty;
while (dr.Read())
{
destinatari += dr["mailinglist"].ToString() + ",";
}
lbDestinatari.Text += destinatari.ToString();

MailMessage mail = new MailMessage();
mail.From = new MailAddress(tbEmail.Text);
mail.To.Add(new MailAddress(tbEmail.Text));
mail.Bcc.Add(new MailAddress(destinatari));
mail.Subject = tbTitolo.Text;
mail.Body = tbBody.Value;

Le mail verso Bcc non vengono inviate, sapete dirmi perchè?

ciao
118 messaggi dal 13 aprile 2007
continua a non inviare.
ma il codice è esatto?

ciao
47 messaggi dal 18 settembre 2006
Contributi
Ciao,

Il bug risiede nel fatto che aggiungi elementi alla collezione BCC del messaggio utilizzando l'overload sbagliato. L'overload del metodo Add() che hai utilizzato, infatti, permette di aggiungere direttamente alla collezione elementi di tipo MailAddress, ovvero oggetti che rappresentano un unico indirizzo email. Il secondo overload - probabilmente quello che volevi utilizzare - accetta come parametro una stringa contentente un numero qualsiasi di indirizzi, separati da virgola.

Quindi, ricapitolando, le soluzioni sono due:

1) Anzichè creare una stringa contenente tutti i destinatari semplicemente utilizzi il metodo Add() di BCC all'interno del ciclo del reader ed aggiungi un indirizzo alla volta. Chiaramente devi spostare la dichiarazione del messaggio prima del ciclo... Questa è la soluzione migliore, a mio avviso.
2) Semplicemente utilizzo il secondo overload di Add(), fornendo la variabile destinatari a tale metodo anzichè una nuova istanza di tipo MailAddress.

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
118 messaggi dal 13 aprile 2007
Ti ringrazio.
Ho provato con il secondo metodo, ma su 4 email, invia soltanto a due.....
Adesso provo con il primo metodo.
ciao
118 messaggi dal 13 aprile 2007
con il primo metodo funziona alla grande.
Secondo te con un invio quante mail posso inviare contemporaneamente?

ciao e grazie
47 messaggi dal 18 settembre 2006
Contributi
Beh, ci vedo due limiti. Il primo risiede nella lista che sta dietro alla collezione Bcc, che impone un numero massimo di 2^32 elementi ma non credo che questo sia un vero e proprio limite :). Il secondo è soggetto al MTA che usi per spedire l'email risultante: alcuni MTA impongono, infatti, limiti severi sul numero massimo di destinatari di una email; l'SMTP di IIS, ad esempio, ha di default un numero massimo complessivo di 100 destinatari per email, se non ricordo male.

Se i destinatari in BCC sono molti, non conviene spedire una mail per destinatario?

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
118 messaggi dal 13 aprile 2007
usavo Bcc perchè avevo capito che funzionasse meglio per gestire invii multipli di email,(è per la newsletter di un sito che ho realizzato) mentre tu mi dici che sarebbe meglio mettere nel ciclo reader un destinatario alla volta, giusto?

ciao
102 messaggi dal 08 gennaio 2007
"aspnet70" <aspnet70> ha scritto nel messaggio news:305890@...
usavo Bcc perchè avevo capito che funzionasse meglio per gestire invii multipli di email,(è per la newsletter di un sito che ho realizzato) mentre
tu mi dici che sarebbe meglio mettere nel ciclo reader un destinatario alla
volta, giusto?

Stamani nello spedire una news ho avuto problemi anche io:

SMTPEXEPTION non è stata gestita dal codice utente errore durante l'elaborazione risposta del server: timeout (#4.4.2)

io uso questo sistema:

cn.Open("driver={Microsoft Access Driver (*.md } bq=" &
Server.MapPath("~/mdb-database/newsletter.mdb"))

rs.Open("SELECT email FROM lista_email", cn, 1)

Dim destinatari As String = ""

While rs.EOF = False

destinatari += rs("email").Value & ","

rs.MoveNext()

End While



poi:



mail.Bcc.Add(destinatari)



Ed in fine:



smtpClient.Send(mail)



Si pianta sull'ultima riga, e mi dà quell'errore che ho descritto sopra.
Ho visto che inserisce correttamente tutti gli indirizzi e che l'inserimento nella tabella news avviene regolarmente quindi penso che il problema sia di aruba che limita i messaggi (adesso 56 indirizzi in contemporanea) sotto cinquanta non mi ha dato mai problemi però non sò se può dipendere da questo.
Cosa mi suggerite di fare?




Saluti @ndrea

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.