Envio de e-mail utilizando C#


Abaixo, um exemplo em C# (.NET) de envio de e-mail:

1- Código

System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();
 
mailMessage.From = new System.Net.Mail.MailAddress("remetente@email.com");
mailMessage.To.Add(new System.Net.Mail.MailAddress("destinatario@email.com"));

//Cópia:
//mailMessage.CC.Add(new System.Net.Mail.MailAddress("copia@email.com"));
 
//Cópia oculta:
//mailMessage.Bcc.Add(new System.Net.Mail.MailAddress("copia.oculta@email.com"));

mailMessage.Subject = "Título do e-mail";
mailMessage.Body = "Olá, esse é o conteúdo do e-mail";
mailMessage.IsBodyHtml = false;
 
using (var smtp = new System.Net.Mail.SmtpClient())
{
	smtp.Host = "smtp.gmail.com";
	smtp.Port = 587;
	smtp.EnableSsl = true;
	smtp.Credentials = new System.Net.NetworkCredential("remetente@email.com", "senha");
	 
	//Exemplo de anexo de texto:
	//mailMessage.Attachments.Add(new System.Net.Mail.Attachment(
	//   new MemoryStream(Encoding.UTF8.GetBytes("conteudo do arquivo")),
	//   "anexo.txt", System.Net.Mime.MediaTypeNames.Text.Plain));
	 
	smtp.Send(mailMessage);
}

2-Exemplo

Baixe o exemplo do GitHub: https://github.com/educoutinho/SendEmailTest

3- Erro “The SMTP server requires a secure connection or the client was not authenticated”

Se você receber o seguinte erro:

System.Net.Mail.SmtpException was unhandled by user code
HResult=-2146233088
Message=The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
Source=System
StackTrace:
at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)
at System.Net.Mail.SmtpClient.Send(MailMessage message)

Tente o seguinte:

  1. Verifique se as configurações estão corretas (servidor, porta, usuário, senha, usar SSL)
  2. Se estiver usando Gmail, por padrão eles desabilitaram o envio de e-mail por aplicativos externos, que são considerados menos seguros. Você precisará habilitar esse tipo de envio novamente. Para mais detalhes consulte: https://support.google.com/accounts/answer/6010255. Se não estiver usando Gmail, verifique se o seu provedor não tomou ação semelhante.

Comentários