Vamos ver neste artigo como enviar mensagens (email) utilizando o servidor SMTP com autenticação de usuário e senha.
Para tanto, precisamos configurar o SmtpClient com uma autenticação de rede, que no caso será o usuário e senha da conta de email que estamos utilizando para o envio.
Para isso, vamos ao código abaixo:
System.Net.Mail.SmtpClient clienteSMTP = new System.Net.Mail.SmtpClient();
clienteSMTP.Credentials = new System.Net.NetworkCredential("conta@meuDominio.com.br", "Senha");
Veja que criamos o SmtpClient e em seguida configuramos uma conta (conta@meuDominio.com.br) e a senha (Senha) como credencial. Desta forma, o SmtpClient poderá realizar o “login” no servidor de email para enviar a mensagem
Podemos ainda expandir um pouco as configurações e configurar também o endereço do servidor e a porta.
System.Net.Mail.SmtpClient clienteSMTP = new System.Net.Mail.SmtpClient();
clienteSMTP.Host = "mail.meuDominio.com.br"; // Endereço do Servidor SMTP
clienteSMTP.Port = 25; // Porta do Servidor SMTP
clienteSMTP.Credentials = new System.Net.NetworkCredential("conta@meuDominio.com.br", "Senha");
Desta forma, o código que irá enviar os emails não precisa ficar físicamente no mesmo servidor que está o serviço de email e assim sendo oferece possibilidades de distribuição do envio.
Abaixo, segue um exemplo de uma função completa de envio de email
public void SendMessage(string destinatarioEmail,
string destinatarioNome, string corpoEmail, string assunto,
bool enviarComAltaPrioridade, bool enviarComoHTML)
{
// Cria Objetos
System.Net.Mail.MailMessage novaMensagem;
System.Net.Mail.SmtpClient clienteSMTP = new System.Net.Mail.SmtpClient();
// Configura o Client do SMTP
clienteSMTP.Host = "mail.meuDominio.com.br"; // Endereço do Servidor SMTP
clienteSMTP.Port = 25; // Porta do Servidor SMTP
// Configura a Conta de Envio do Email (Conta e Senha)
clienteSMTP.Credentials = new System.Net.NetworkCredential("conta@meuDominio.com.br", "Senha");
// Inicializa o MailMessage
using (novaMensagem = new System.Net.Mail.MailMessage())
{
// Adiciona um Destinatário
novaMensagem.To.Add(new System.Net.Mail.MailAddress(destinatarioEmail, destinatarioNome));
// Configura as Informações do Remetente
novaMensagem.From = new System.Net.Mail.MailAddress("conta@meuDominio.com.br", "Conta de Testes");
// Configura a Prioridade
novaMensagem.Priority = enviarComAltaPrioridade ? System.Net.Mail.MailPriority.High : System.Net.Mail.MailPriority.Normal;
// Configura o Tipo do Email (Se é HTML ou Não)
novaMensagem.IsBodyHtml = enviarComoHTML;
// Configura a Mensagem
novaMensagem.Subject = assunto;
novaMensagem.Body = corpoEmail;
// Envia o Email
clienteSMTP.Send(novaMensagem);
}
}
Já que o assunto foi concluído, gostaria de tomar mais algumas palavras para explicar o porque isso se faz necessário.
Tudo começo com SPAMs. Isso mesmo, SPAMs.
Hoje em dia para evitar que pessoas mal intencionadas façam uso de sua conta de email (conta@meuDominio.com.br) para enviar mensagens de SPAM’s sem que os mesmos sejam identificados (só se o spammer conseguir a conta e a senha).
De fato que alguns hosts de hospedagem além de exigir a autenticação, instruem que o envio da mensagem seja realizado por outra porta (não a 25). O próprio CGI.br instrui o envio pela porta (587). Claro que, o host de hospedagem precisa fornecer o acesso pela porta (587) para que a aplicação possa utilizar-lá.
Bom, é isso.
Até o próximo…
Posts Relacionados:



Be the first to start a conversation