domingo, 10 de julho de 2011

Enviando E-mail

System.Net.Mail;



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;

Após isso, vamos criar um método do tipo void, ou seja, não terá retorno, para enviar o email. Veja a seguir a declaração do método com seus parâmetros:

/// <summary>
/// Classe Envia Email - Variáveis
/// </summary>
/// <param name="from">Remetente</param>
/// <param name="recepient">Destinatário</param>
/// <param name="cc">Com Cópia</param>
/// <param name="bcc">Com Cópia Oculta</param>
/// <param name="subject">Assunto</param>
/// <param name="body">Corpo da Mensagem</param>

public void EnviaEmail(string from, string recepient, string cc, string bcc, string subject, string body)
{
}

Ok, agora vamos atribuir as variáveis criadas aos valores que serão passados usando as classes do System.Net.Mail:

public void EnviaEmail(string from, string recepient, string cc,
string bcc, string subject, string body)

{
//instancio a classe MailMessage, responsável por atribuir
 //os valores para as variáveis declaradas no método

MailMessage email = new MailMessage();

//endereço do remetente, chamo o método From que recebe uma nova
 //instância de MailAdress passando como parâmetro a variável from

email.From = new MailAddress(from);
 //destinatário, uso método Add, já que posso enviar para várias pessoas

email.To.Add(new MailAddress(recepient));
 //faço uma verificação, se houver cc e bcc, envio

if (cc != "")

{email.CC.Add(new MailAddress(cc));
 }
 if (bcc != "")
 {
 email.Bcc.Add(new MailAddress(bcc));
 }
 //defino o assunto
 email.Subject = subject;
 //defino o corpo da mensagem
 email.Body = body;
 //defino que o formato do texto será HTML
 email.IsBodyHtml = true;
 //minha prioridade de envio será normal
 email.Priority = MailPriority.Normal;
 //instancio o SMTP passando o host configurado no IIS
 SmtpClient smtp = new SmtpClient("exemplo.server.com");
 //envio o email por meio do método Send, passando como
 //parâmetro a variável instanciada da classe MailMessage
 smtp.Send(email);
 }
Nosso método está pronto. Agora abra o modo design da página Default.aspx, criada por padrão, e insira os campos referentes ao envio de email dessa forma:

Ordem: txtDe, txtPara, txtCc, txtBcc, txtAssunto, txtTexto, btnEnviar e lblMsg.

Dê dois cliques no botão Enviar e digite o seguinte código:
 protected void btnEnviar_Click(object sender, EventArgs e)
 {
//instancio a classe de envio de email
 EnvioEmail email = new EnvioEmail();
 //chamo o método EnviaEmail, passando os textboxes como parâmetros
 email.EnviaEmail(txtDe.Text, txtPara.Text, txtCc.Text, txtBcc.Text, txtAssunto.Text, txtTexto.Text);
 }

Essa é a forma básica de enviar emails com ASP.NET. Este exemplo só irá funcionar corretamente se o seu domínio estiver usando o SMTP configurado no IIS (Internet Information Services) e autenticado. Dito isto, não adianta eu rodar a aplicação e clicar no botão de Enviar, já que minha máquina não está configurada e o intuito desse artigo é apenas de mostrar como é simples criar um método para enviar email. Podemos configurar o SMTP pelo Web.config, arquivo de configuração de nossa aplicação.



Faça o seguinte método para enviar um email com anexo: crie um botão com o nome Anexar e ID btnAnexar, dê dois cliques nele e digite o seguinte código (antes não se esqueça de usar o namespace System.Net.Mail):

protected void btnAnexar_Click(object sender, EventArgs e)
 {
 //instancio a classe MailMessage
 MailMessage email = new MailMessage();
 //endereço do remetente, chamo o método From que recebe uma nova
 //instância de MailAdress passando como parâmetro um email de exemplo
 email.From = new MailAddress("envioemail@exemplo.com.br");
 //destinatário, uso método Add, já que posso enviar para várias pessoas
 email.To.Add(new MailAddress("wellingtonbalbo@gmail.com"));
 //defino o assunto
 email.Subject = "Teste de envio com sucesso!";
 //defino o corpo da mensagem
 email.Body = "body";
 //uso o método Attachments para anexar arquivos, lembrando que anexar
 //quantos arquivos quiser, desde que seja dada a permissão a este usuário
 email.Attachments.Add(new Attachment("C:\\teste01.txt"));
 email.Attachments.Add(new Attachment("C:\\teste02.txt"));
 email.Attachments.Add(new Attachment("C:\\teste03.txt"));
 //instancio o SMTP passando o host configurado no IIS
 SmtpClient smtp = new SmtpClient("127.0.0.1");
 //envio o email por meio do método Send, passando como
 //parâmetro a variável instanciada da classe MailMessage
 smtp.Send(email);
 }



Att,
Leonardo Rocha.

Nenhum comentário:

Postar um comentário

Informações de contato
Nome:
E-mail:
Telefone: