Portando funcionalidade System.Web.mail para System.net.mail
-
08-07-2019 - |
Pergunta
A função a seguir funciona perfeitamente:
protected void SendWebMailMessage(string DisplayName, string From, string ReplyTo,
string To, string Subject, string Body, string Attachments)
{
System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage();
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver",
"smtpout.secureserver.net");
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25);
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing",
2);
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername", From);
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendpassword",
mailpassword);
msg.To = To;
msg.From = DisplayName + "<" + From + ">";
msg.BodyFormat = MailFormat.Html;
msg.Subject = Subject;
msg.Body = Body;
msg.Headers.Add("Reply-To", ReplyTo);
SmtpMail.SmtpServer = "smtpout.secureserver.net";
SmtpMail.Send(msg);
}
No entanto, eu recebo uma compilação de aviso dizendo que System.Web.Mail é obsoleto, e que eu deveria estar usando System.Net.Mail. Então eu usei System.Net.Mail, e eu vim com a seguinte função para substituir o meu antigo:
protected void SendNetMailMessage(string DisplayName, string From, string ReplyTo,
string To, string Subject, string Body, string Attachments)
{
MailAddress addrfrom = new MailAddress(From, DisplayName);
MailAddress addrto = new MailAddress(To);
MailAddress replytoaddr = new MailAddress(ReplyTo);
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.From = addrfrom;
msg.To.Add(addrto);
msg.ReplyTo = replytoaddr;
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtpout.secureserver.net");
smtp.Credentials = new NetworkCredential(From, mailpassword);
smtp.Send(msg);
}
Eu não entendo todas as exceções ou erros, mas minha mensagem nunca vai passar. Alguém pode me diga o que eu poderia estar fazendo errado? Agradecemos antecipadamente.
Solução
Se não estou errado ... você está usando o Goddady hospedagem.
Eu também estou usando ... e eu tenho **relay-hosting.secureserver.net**
como o servidor SMTP.
Eu não sei ... pode ser pode ser algo como isso ... ou você não tiver definido a Relé em seu console.
Outras dicas
Eu testei você código acima um trabalha muito bem. Eu tive que adicionar as propriedades do corpo e assunto, mas mesmo sem eles eu ainda recebi um e-mail em branco. Eu também tentei com e sem fornecer credenciais, ambos trabalharam.
Inicialmente eu não tinha mudado sua seqüência de acolhimento e se receber uma exceção com a mensagem "Falha enviar e-mails."