sábado, 23 de março de 2013

Enviar Email com C# ASP.NET

Olá Pessoal, segue um bom código para envio de email usando ASP.NET C#, mas antes dizer vamos saber algumas curiosidades sobre o email.


1. Qual foi a primeira mensagem de E-mail?

Ray Tomlinson é conhecido como a primeira pessoa a enviar uma mensagem via correio eletrônico.
Tomlinson não foi especificamente encarregado de desenvolver o e-mail, mas ele trabalhava em aplicações úteis para o projeto do MIT ARPANET (que mais tarde evoluiu para a Internet). Ele se dedicou a criar o e-mail porque para ele parecia ser uma idéia perfeita.
O primeiro e-mail foi enviado entre dois computadores lado a lado. Tomlinson diz que não consegue lembrar o conteúdo da primeira mensagem, mas é provável que tenha sido um “teste 123″ ou algo assim.

2. Qual a origem da palavra Spam?

Não é certo, mas o primeiro spam teria sido enviado em 5 de março de 1994 pelos advogados Canter e Siegel. Eles o fizeram propaganda sobre uma loteria em um grupo de discussão que não tinha nada a ver com o assunto, o que revoltou muitos assinantes do grupo.
Já a palavra Spam é complicado. Existe um presunto enlatado nos Estados Unidos de nome SPAM® escrito em letras maiúsculas com marca registrada pela Hormel Foods desde 1930. A empresa aliás não gosta nada de ter seu produto associado a algo nocivo e indesejável como os Spams de internet.
Mas a referência ao produto é inevitável pois a origem mais aceita vem de uma cena do programa de TV “Monty Python”, onde alguns vikings muito inconvenientes repetiram infinitas vezes a palavra “spam”, em referência justamente ao enlatado norte-americano.

3. Qual é a mais comum e-mail a senha?

Por incrível que pareça, “123456″ é a líder. Quando 10 mil senhas do Hotmail vazaram, a combinação “123456″, também liderou a lista da mais comum. Portanto, não poupe criatividade na hora de escolher sua senha. Apele para músicas e livros preferidos e faça uma combinação de letras e números para proteger suas informações.

4. Como se escreve e-mail?

Pode ser e-mail, email, E-Mail, E-mail ou eMail. Depende de onde você for consultar. Muitos dicionários preferem “email”, sem o hífen. Já a Associated Press Stylebook (Manual de Redação e Guia sobre o Direito de Mídia da Associated Press) insiste em ver a palavra como uma abreviatura de “correio eletrônico” e, portanto, com hífen “e-mail”. Esta, a meu ver é a mais correta.

5. Como é chamado o sinal @?

Em português dizemos “arroba”, já na versão em inglês, o “@” é conhecido apenas como “at”. Conheça mais algumas:
E em italiano, é “chiocciolina”; em livre tradução: pequeno caracol.
Em holandês é “apestaart”; em livre tradução: “rabo de macaco”.
Em sueco, “snabel-a”; em livre tradução: tromba de elefante.

6. Quando foi enviado o primeiro e-mail do espaço?

A primeira mensagem de correio-eletrônico vinda do espaço foi enviada em 1991 pela tripulação da STS-43 Atlantis, através do software AppleLink em um computador Macintosh.


Bom, segue o código abaixo:


private void EnviarEmail(string assunto, string corpoEmail)
{
    //Define os dados do e-mail
    string nomeRemetente = "Meu Nome";
    string emailRemetente = "meu email";
    string senha = "minha senha para acessar meu email";
 
    //Host da porta SMTP
    //Exemplo smtp.gmail.com
    string SMTP = "host do servidor do email"; 
 
    string emailDestinatario = "Email que será enviado";
    //string emailComCopia        = "email@comcopia.com.br";
    //string emailComCopiaOculta  = "email@comcopiaoculta.com.br";
 
    string assuntoMensagem = assunto;
    string conteudoMensagem = corpoEmail;
 
    //Cria objeto com dados do e-mail.
    System.Net.Mail.MailMessage objEmail = new System.Net.Mail.MailMessage();
 
    //Define o Campo From e ReplyTo do e-mail.
    objEmail.From = new MailAddress(nomeRemetente + "<" + emailRemetente + ">");
 
    //Define os destinatários do e-mail.
    objEmail.To.Add(emailDestinatario);
 
    //Enviar cópia para.
    //objEmail.CC.Add(emailComCopia);
 
    //Enviar cópia oculta para.
    //objEmail.Bcc.Add(emailComCopiaOculta);
 
    //Define a prioridade do e-mail.
    objEmail.Priority = System.Net.Mail.MailPriority.Normal;
 
    //Define o formato do e-mail HTML (caso não queira HTML alocar valor false)
    objEmail.IsBodyHtml = true;
 
    //Define título do e-mail.
    objEmail.Subject = assuntoMensagem;
    
    //Define o corpo do e-mail.
    objEmail.Body = conteudoMensagem;
 
 
    //Para evitar problemas de caracteres "estranhos", configuramos o charset para "ISO-8859-1"
    objEmail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
    objEmail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
 
 
    // Caso queira enviar um arquivo anexo
    //Caminho do arquivo a ser enviado como anexo
    //string arquivo = Server.MapPath("arquivo.jpg");
 
    // Ou especifique o caminho manualmente
    //string arquivo = @"e:\home\LoginFTP\Web\arquivo.jpg";
 
    // Cria o anexo para o e-mail
    //Attachment anexo = new Attachment(arquivo, 
    //System.Net.Mime.MediaTypeNames.Application.Octet);
 
    // Anexa o arquivo a mensagem
    //objEmail.Attachments.Add(anexo);
 
    //Cria objeto com os dados do SMTP
    System.Net.Mail.SmtpClient objSmtp = new System.Net.Mail.SmtpClient();
 
    //Alocamos o endereço do host para enviar os e-mails  
    objSmtp.Credentials = new System.Net.NetworkCredential(emailRemetente, senha);
    objSmtp.Host = SMTP;
    objSmtp.Port = 587;
    //Caso utilize conta de email do exchange deve habilitar o SSL
    //objEmail.EnableSsl = true;
 
    //Enviamos o e-mail através do método .send()
    try
    {
        objSmtp.Send(objEmail);
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        //excluímos o objeto de e-mail da memória
        objEmail.Dispose();
        //anexo.Dispose();
    }
}