47 messaggi dal 18 settembre 2006
Contributi
La cosa migliore sarebbe spezzare l'invio in più email con un certo numero di Bcc. Ad ogni modo, al fine di evitare problemi con le limitazioni di cui sopra, ti conviene produrre una mail per destinatario: i problemi legati alle performance dovrebbero essere minimi.

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
47 messaggi dal 18 settembre 2006
Contributi
Anche qui consiglio di spedire ad un destinatario alla volta... Ad ogni modo l'errore riportato non dice un granchè e dipende dall'MTA utilizzato.

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
102 messaggi dal 08 gennaio 2007
"efran.cobisi" <efran.cobisi> ha scritto nel messaggio news:305928@...
Anche qui consiglio di spedire ad un destinatario alla volta... Ad ogni modo l'errore riportato non dice un granchè e dipende dall'MTA utilizzato.

Grazie del consiglio, vedrò di trovare una soluzione.

Saluti @ndrea
118 messaggi dal 13 aprile 2007
quindi dici che così è più performante:
OleDbDataReader dr = comm.ExecuteReader();

MailMessage mail = new MailMessage();
mail.From = new MailAddress(tbEmail.Text);

while (dr.Read())
{
// mail.Bcc.Add(new MailAddress(dr["mailinglist"].ToString()));
mail.To.Add(new MailAddress(dr["mailinglist"].ToString()));

}
mail.Subject = tbTitolo.Text;
mail.Body = tbBody.Value;

giusto?

ciao e grazie
47 messaggi dal 18 settembre 2006
Contributi
aspnet70 ha scritto:
quindi dici che così è più performante:
OleDbDataReader dr = comm.ExecuteReader();

MailMessage mail = new MailMessage();
mail.From = new MailAddress(tbEmail.Text);

while (dr.Read())
{
// mail.Bcc.Add(new MailAddress(dr["mailinglist"].ToString()));
mail.To.Add(new MailAddress(dr["mailinglist"].ToString()));

}
mail.Subject = tbTitolo.Text;
mail.Body = tbBody.Value;


No, attenzione, così è praticamente uguale a prima.
Dico che, per ovviare agli inconvenienti legati al numero massimo di destinatari, conviene effettuare una spedizione diversa per ogni destinatario.
Ovvero:

            SmtpClient smtp = new SmtpClient();
            // ...

            while (dr.Read())
            {
                MailMessage mail = new MailMessage();
                mail.Subject = tbTitolo.Text;
                mail.Body = tbBody.Value;
                mail.From = new MailAddress(tbEmail.Text);
                mail.To.Add(new MailAddress(dr["mailinglist"].ToString()));

                smtp.Send(mail);
            }


HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
102 messaggi dal 08 gennaio 2007
"efran.cobisi" <efran.cobisi> ha scritto nel messaggio news:305957@...
aspnet70 ha scritto:


No, attenzione, così è praticamente uguale a prima.
Dico che, per ovviare agli inconvenienti legati al numero massimo di destinatari, conviene effettuare una spedizione diversa per ogni destinatario.
Ovvero:

SmtpClient smtp = new SmtpClient();
// ...

while (dr.Read())
{
MailMessage mail = new MailMessage();
mail.Subject = tbTitolo.Text;
mail.Body = tbBody.Value;
mail.From = new MailAddress(tbEmail.Text);
mail.To.Add(new MailAddress(dr["mailinglist"].ToString()));
smtp.Send(mail);
}

Che tradotto in VB dovrebbe essere così:

-----------
Dim smtp As New SmtpClient()
' ...
While dr.Read()
Dim mail As New MailMessage()
mail.Subject = tbTitolo.Text
mail.Body = tbBody.Value
mail.From = New MailAddress(tbEmail.Text)
mail.[To].Add(New MailAddress(dr("mailinglist").ToString())) smtp.Send(mail)
End While
----------
Visto che non sono una cima, mi date una mano ad adattarlo anche al mio db?
Questo è quello che uso ora:

---------------
Dim destinatari As String = ""

While rs.EOF = False

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

rs.MoveNext()

---------------------
Saluti @ndrea

Ps: scusate se mi sono intromesso ma vedo che il quesito ed il dilemma sono gli stessii!

Saluti @ndrea
47 messaggi dal 18 settembre 2006
Contributi
vta ha scritto:
Visto che non sono una cima, mi date una mano ad adattarlo anche al mio db?


Dim smtp As New SmtpClient()
' ...
While rs.Read()
  Dim mail As New MailMessage()
  mail.Subject = "..."
  '...

  mail.[To].Add(New MailAddress(rs("email").Value))

  smtp.Send(mail)
End While


HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
102 messaggi dal 08 gennaio 2007
"efran.cobisi" <efran.cobisi> ha scritto nel messaggio news:305986@...

Dim smtp As New SmtpClient()
' ...
While rs.Read()
Dim mail As New MailMessage()
mail.Subject = "..."
'...

mail.[To].Add(New MailAddress(rs("email").Value))

smtp.Send(mail)
End While

Io ho risolto, la news è partita!
Ho dvuto modificare un pò il codice ma mi sei stato di grande aiuto, Grazie!
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.