Invio email da .NET

mercoledì 06 luglio 2005 - 11.07

volperubbia Profilo | Senior Member

Ciao a tutti,
sto facendo una classe vb.net per l'invio di email, ma incontro alcuni errori, a seconda del mittente / destiunatario. Ad esempio:
- Impossibile inviare il messaggio al server SMTP ...
- Uno o più indirizzi di destinatari sono stati respinti dal server. Risposta del server: 550 RCPT TO: ............. Relaying not allowed.

Ecco il codice.

Dim strSMTP As String = "MAIL.PIPPO.IT"
Dim strUsrn As String = "USERNAME_1@PIPPO.IT"
Dim strPass As String = "PWD"

Dim objEmail As New MailMessage

objEmail.From = strUsrn
objEmail.To = "USERNAME_2@PIPPO.IT"
objEmail.Subject = "Prova " & Now.ToString
objEmail.BodyFormat = Mail.MailFormat.Text
objEmail.Body = "Ciao"

objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strServer
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = strUsrn
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") =
strPass

SmtpMail.SmtpServer = strSMTP
SmtpMail.Send(objEmail)

Ho provato il codice con diversi accaunt:
- se mi spedisco la mail fra 2 accuont di LIBERO, tutto ok
- se spedisco da LIBERO a YAHOO, errore.

Il problema è: dato un account valido del tipo

Dim strSMTP As String = "MAIL.PIPPO.IT"
Dim strUsrn As String = "USERNAME_1@PIPPO.IT"
Dim strPass As String = "PWD"

Dim objEmail As New MailMessage
objEmail.From = strUsrn
objEmail.To = "..."
...
SmtpMail.SmtpServer = strSMTP
SmtpMail.Send(objEmail)

come non incorrere in errore per qualsiasi objEmail.To?

Grazie, Davide

Brainkiller Profilo | Guru

Ciao Volpe,
il problema è l'SMTP Server che stai utilizzando che non ha il Relaying abilitato ossia non puoi spedire email ad account diversi da quelli del tuo provider.

Esempio se usi come SMTP mail.tin.it utilizzando una connessione di tiscali, potrai inviare email solo a caselle @tin.it.
Prova a leggere questo Tip, il secondo paragrafo:
http://www.dotnethell.it/tips/0x800CC79.aspx

Per risolvere utilizza l'SMTP della connessione che stai usando oppure se sei in azienda utilizza il vs. SMTP interno.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

volperubbia Profilo | Senior Member

Grazie per la pazienza,
allora ho letto l'articolo e sono andato in Outlook a impostare sull'account:
- autenticazione del server necessaria
- Impostazioni
- Nome account: xxx
- Password: yyy.
Fin qui tutto ok, outlook spedisce e riceve correttamente, verso qualunque indirizzo. Però da vb, con queste impostazioni non ci siamo ancora.

objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = ???
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ???
objEmail.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ???

SmtpMail.SmtpServer = ??? forse xxx

Cosa consigli?

Davide

volperubbia Profilo | Senior Member

Ciao,
ora sono riuscito a spedire e-mail fra account di dominii diversi, c'era un errore nella password. Comunque, per alcuni smtp server ottengo ancora l'errore di relay, evidentemente c'è ancora qualcosa che mi sfugge.

Grazie, Davide

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5