Olá pessoal, tudo bom?
Deixo aqui uma pequena dica para aqueles que querem enviar e-mails a partir de formulários ou rotinas em ASP.NET. O Framework .NET possui um namespace específico para esse fim que é o System.Net.Mail. Tal namespace possui uma série de classes e métodos para a prática de envio de e-mail, porém exploro apenas algumas delas nos exemplos a seguir:
Exemplo 1: Enviando mensagens sem formatação de texto ou anexos
....
using System.Net.Mail;
....
....
protected void btnEnviar_Click(object sender, EventArgs e)
{
SmtpClient email = new SmtpClient("smtp.servidor.com"); //Utilize seu próprio servidor SMTP
try
{
email.Send(txtEmailRemetente.Text,txtTo.Text,txtAssunto.Text,txtMensagem.Text);
lblMensagem.Text = "OK";
}
catch (Exception erro)
{
lblMensagem.Text = erro.Message;
}
}
Exemplo 2: Enviando mensagens com textos formatados, com cópia ou cópia oculta e anexos
....
using System.Net.Mail;
....
....
protected void btnEnviar_Click(object sender, EventArgs e)
{
SmtpClient email = new SmtpClient("smtp.servidor.com"); //Utilize seu próprio servidor SMTP
try
{
MailMessage msg = new MailMessage();
MailAddress remetente = new MailAddress(txtEmailRemetente.Text, txtNomeRemetente.Text);
msg.From = remetente;
msg.Subject = txtAssunto.Text;
msg.Body = txtMensagem.Text;
msg.IsBodyHtml = true;
if (!txtTo.Text.Equals(string.Empty)) //Verifica se há destinatário
msg.To.Add(txtTo.Text);
if (!txtCC.Text.Equals(string.Empty)) //Verifica se há destinatário com cópia
msg.CC.Add(txtCC.Text);
if (!txtBCC.Text.Equals(string.Empty)) //Verifica se há destinatário com cópia oculta
msg.Bcc.Add(txtBCC.Text);
if (fuAnexo.HasFile) //Verifica se há anexo
{
Attachment anexo = new Attachment(fuAnexo.PostedFile.InputStream, fuAnexo.FileName);
msg.Attachments.Add(anexo);
}
email.Send(msg);
lblMensagem.Text = "OK";
}
catch (Exception erro)
{
lblMensagem.Text = erro.Message;
}
}
Grande abraço,
Eduardo Henrique Rizo
[twitter-follow screen_name='eduardorizo' show_count='yes']
Estou usando a hospedagem da locaweb, e ele retorna a seguinte msg ” Para envio de mensagens e necessaria autenticacao. ” … alguem sabe o que devo fazer?
Boa tarde Victor, tudo bom?
Bastaria fazer o seguinte:
…
email.UseDefaultCredentials = false;
email.Credentials = new System.Net.NetworkCredential(“seu login”,”sua senha”);
…
Abraços,
Eduardo Henrique Rizo