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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | .... 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | .... 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