Salve,
ho un problema come da oggetto con l'invio di mail. Il codice che ho utilizzato l'avevo gia' usato in precedenza per un'altra mia applicazione web e funziona benissimo (il server smtp e' diverso pero')...
private void InviaOrdine()
{
MailMessage mail = null;
SmtpClient smtp = null;
try
{
string msg = "testo di prova";
if (!string.IsNullOrWhiteSpace(msg))
{
mail = new MailMessage();
mail.Body = msg;
mail.IsBodyHtml = true;
mail.From = new MailAddress("io@prova.it", "Utente WEB");
mail.Subject = "Richiesta informazioni da " + Request.Url.Host;
mail.To.Add("xxxxx.xxxxx@gmail.com");
mail.ReplyToList.Clear();
mail.ReplyToList.Add(new MailAddress("noreply@none.none", "Non rispondere a questa mail"));
smtp = new SmtpClient();
/*
smtp.UseDefaultCredentials = false;
smtp.Host = "smtp.xxxxxxxxxx.it";
smtp.Port = 25;
smtp.Credentials = new NetworkCredential("sender@xxxxxxxxx.it", "xxxxxxxxx");
*/
smtp.Send(mail);
Response.Write("La richiesta è stata correttamente inviata!");
Response.End();
}
}
catch (Exception ex)
{
Response.Write(ex.Source + " ha generato il seguente errore:<br/>" + ex.Message
+ "<br/><br/>Stack di chiamate:<br/>" + ex.StackTrace.ToString());
Response.End();
}
finally
{
if (mail != null) mail.Dispose();
if (smtp != null) smtp.Dispose();
}
}
e nel webconfig
<system.net>
<mailSettings>
<smtp>
<network host="smtp.xxxxxxxxx.it" password="xxxxxxxxxx" userName="sender@xxxxxxxxxxx.it"/>
</smtp>
</mailSettings>
</system.net>
Con il codice cosi' com'e' (quindi con le impostazioni del webconfig) ricevo la seguente eccezione:
System ha generato il seguente errore:
Nome di cassetta postale non consentito. Risposta del server: sorry, you need to supply the correct username and password for SMTP-AUTH (#5.7.1)
Stack di chiamate:
in System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) in System.Net.Mail.SmtpClient.Send(MailMessage message) in ifn.moduloMail.InviaOrdine() in C:\Users\xxxxxxxxx\Documents\Visual Studio 2010\Projects\ifn\ifn\moduloMail.master.cs:riga 52
Se invece levo i commenti e quindi setto nel codice le impostazioni del server smtp e le credenziali a volte il messaggio di errore e' molto piu' generico (ora mi sta dando sempre lo stesso e non lo posso postare).
Cercando con google ho trovato che spesso questo errore e' dovuto al provider internet che non consente l'utilizzo di altri server smtp. A parte l'assurdita' della cosa (io avevo sentito solo del contrario, cioè il server smtp che richiedeva una connessione dal suo isp), sono sicuro che non sia per quello perche' configurando l'account con windows mail sulla stessa macchina di sviluppo, riesco sia a ricevere che inviare le mail da quell'account. L'unica differenza che win mail ha un'opzione "Accesso tramite POP Autenticato" o altre scelte, che da codice non so dove impostarle...
Ringrazio Anticipatamente,
Walter