43 messaggi dal 22 ottobre 2007
sto finendo di implementare la mia prima newsletter..
sono arrivato al punto di scrivere la mail ed inviarla a tutte le mail presenti nel db.
Scritta la mail, la invio, ma mi da il seguente errore: Indirizzo del mittente respinto dal server. Risposta del server: 530 5.7.0 Must issue a STARTTLS command first. i5sm12286798mue.11

L'errore è sull'istruzione SmtpMail.Send(mail). Questo il mio codice:
' Apro la connessione
        Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("App_Data\database.mdb")
        cn = New OleDbConnection(str)
        cn.Open()
        
        ' Lancio una query nell'oggetto commando di OleDB - Estraggo tutti gli indirizzi email dal database
        cmd = New OleDbCommand("SELECT email FROM newsletter", cn)
        dr = cmd.ExecuteReader()
        
        Dim destinatari As String = ""
        
        ' Memorizzo in una variabile le email estratte in precedenza
        While (Not dr.HasRows)
            destinatari += dr("email").Value & ","
            dr.NextResult()
        End While

        ' Invio la Newsletter
        Dim mail As New MailMessage
        ' Inserisci qui il tuo indirizzo email
        mail.From = "sender@gmail.com"
        ' Inserisci ANCHE qui il tuo indirizzo email
        mail.To = "sender@gmail.com"
        mail.Bcc = destinatari
        mail.Subject = Oggetto.Text
        mail.Body = Corpo.Text
        mail.BodyFormat = MailFormat.Html
        
        SmtpMail.SmtpServer = "smtp.gmail.com"
        SmtpMail.Send(mail)

        Messaggio.Text = "Newsletter inviata con successo"

        dr.Close()
        cn.Close()
    End Sub


inoltre il compilatore mi dice che MailMessage e SmtpMail sono obsoleti, forse xke uso System.Web.Mail.. dovrei utilizzare System.Net.Mail? se si, come?

grazie
Modificato da luis_figo il 31 ottobre 2008 17.44 -
43 messaggi dal 22 ottobre 2007
ho risolto.. ma riesco ad inviare l'email ad un solo indirizzo..

visto ke sto implementando una newsletter voglio inviare la mail a più indirizzi. Solo che quando faccio invia mi il seguente errore: The parameter 'to' cannot be an empty string.
Parameter name: to


il mio codice è il seguente:
 
 ' Lancio una query nell'oggetto commando di OleDB - Estraggo tutti gli indirizzi email dal database
        cmd = New OleDbCommand("SELECT email FROM newsletter", cn)
        dr = cmd.ExecuteReader()
        
        Dim destinatari As String = ""
        
        ' Memorizzo in una variabile le email estratte in precedenza
        While (Not dr.HasRows)
            destinatari += dr("email").Value & ","
            dr.NextResult()
        End While
        
        ' Invio la Newsletter
        Dim mail As New MailMessage("mymail@gmail.com", destinatari, Oggetto.Text, Corpo.Text)
        
        mail.IsBodyHtml = False
        Dim mailAut As New System.Net.NetworkCredential("mymail@gmail.com", "password")


dove 'destinatari' sarebbe la stringa con gli indirizzi presenti nel database
solo che è proprio destinatari che non legge.. o non so.. eppure non è vuoto il database..

help me
Modificato da luis_figo il 31 ottobre 2008 19.18 -
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
luis_figo wrote:
ho risolto.. ma riesco ad inviare l'email ad un solo indirizzo..

' Memorizzo in una variabile le email estratte in precedenza While (Not dr.HasRows)
destinatari += dr("email").Value & ","
dr.NextResult()
End While
Ciao,
stai pensando alla maniera del vecchio ADO, con ADO.NET ti consiglio di scorrere il DataReader così:
If dr.HasRows Then  Do While dr.Read()    destinatari += dr("email").Value & ","  LoopEnd If

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
43 messaggi dal 22 ottobre 2007
ok fatto ma mi da questo errore ora:
Public member 'Value' on type 'String' not found

proprio sulla riga:

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

43 messaggi dal 22 ottobre 2007
risolto.. bastava sostituire Value:

destinatari += dr("email").ToString & ","


Solo che ho notato che quando vado a leggere la mail, si vedono tutti gli indirizzi email delle altre persone.
c'è un modo per nasconderle?
432 messaggi dal 31 gennaio 2007
se non erro
dovrebbe essere l'oggetto MailMessage mailmessagge.Add.Bcc
ciao
Modificato da zaffoo il 01 novembre 2008 15.36 -
432 messaggi dal 31 gennaio 2007
infatti mail.Bcc.Add( stringa indirizzi email);
43 messaggi dal 22 ottobre 2007
ho provato a farlo ma non invia a tutti gli indirizzi email della stringa passata..
mi invia la mail solamente al primo indirizzo presente nel database... xke?

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.