PplWare Mobile

Tutorial C# – Enviar e-mail a partir de uma Windows Forms

                                    
                                

Este artigo tem mais de um ano


Autor: Hélio Moreira


  1. Jorge says:

    Excelente. Era mesmo disto que eu andava à procura. Simples e eficaz. Não imaginas as horas que andei na internet a pesquisar isto.

    PS: Ainda bem que voltaram os tutorial de C#.

  2. DexxA says:

    FÁCIL E PRÁTICO

  3. The STK says:

    Muito nice… estes tutorials são porreiros, continua!

  4. chicosoft says:

    Era Porreiro o “Copy Paste” lol

  5. Grande Artigo 🙂 Parabéns e continua

  6. rsl says:

    Peço desculpa por ser nabo! 🙂 Mas tirando a utilidade académica, em termos práticos isto tem mais algum interesse? Uso o web gmail, teria alguma vantagem com o uso disto?

    abraço

    • Hélio Moreira says:

      Isto tem sobretudo utilidade para programadores em C# e que querem integrar numa aplicação um form de email. Não serve de maneira nenhuma para “substituir” um outlook ou um gmail 🙂

      Cumps

    • luis says:

      Boas ,eu na verdade uso algo semelhante para fazer o backup de código gerado por uma aplicação minha, o objectivo é se um problema acontecer, no mail vai estar sempre uma versão anterior.
      antes disso, usei para relato de erros, mas ultimamente desactivei essa funcionalidade.

  7. Joao Pedro says:

    Sr Hélio, e como adicionamos a imagem (neste caso a do pplware)?

    Abraço.

  8. PedroC. says:

    Peço desculpa pelo offtopic!

    Mas precisava de uma dica, preciso de um programa de sincronização, ou seja, que grave os meus ficheiros noutro lado quando é alterado…por exemplo um doc do word, eu faço gravar no C:\ e fica gravado também no D:\ !

    Alguém Conhece?

    🙂

  9. Raclima23 says:

    Sem dúvida um excelente artigo 🙂

  10. Jo says:

    Parabens pelo artigo

  11. João Vieira says:

    Boas 😀

    Parabéns pela iniciativa, eu comecei há pouco tempo a programar C#, mas tenho tido alguns problemas em ligar aquilo a uma base de dados, e trabalhar com ela, será que podiam fazer um tutorialzinho disso?

    Cumprimentos

    • Hélio Moreira says:

      Que tipo de Ligação preferes? SQL, Access? Para a semana vou colocar um tutorial online sobre ligação C# + MySQL.

      Cumps

    • chicosoft says:

      Somos 2… Eu tb comecei a pouco tempo a mexer em C#… se conseguisse escrever em bds Mysql, era meio caminho andado para as minhas coisas… o resto faço, com mais ou menos cabeçadas.. lol

  12. FredRF says:

    Talvez Off topic.

    Boas,

    Gostaria de saber a vossa opinião em relação ao seguinte:

    Consideram que fale a pena apostar na minha formação nesta linguagem de programação?

    Queria aprender a programar, acham que este é um bom patamar de partida?

    Obrigado.

    • João Melo says:

      “Queria aprender a programar, acham que este é um bom patamar de partida?”

      Meu amigo…

      Não existe melhor para começar, .NET e principalmente c# vai-te dar um leque grandioso de opções no mercado de trabalho. É “simples” mas muito robusto e muito prático.

      Ao longo da tua vida/carreira vais ver que não podes nem te irás deparar só com uma linguagem, o truque, tens de ser bom programador( lógica, Abstracção, OOP ) depois qualquer linguagem te vai parecer igual.

      Cumprimentos

      PS: depois tens de ver onde te inseres, se Web ou Cliente, se somente Windows ou todos os sistemas.

    • chicosoft says:

      Amigo, se nunca programaste… começa com a linguagem que mais pessoas usam e ensinam nas escolas ao começar a programar: Linguagem C

    • Nuno Salgado says:

      As melhores linguagens de programação para se aprender a programar são as funcionais. O Haskell é um grande ponto de partida.

      Se não for do agrado, o C é sempre um bom começo.

  13. TVMANiA says:

    Se pudesses fazer um sobre C# e base de dados (Microsoft Office Access 2007), adicionar, remover, ordenar, procurar dados, era de valor amigo!

    Agradeço desde já este tutorial. Cumprimentos!

  14. Vinicius says:

    Teria como disponibilizar para Downlaod ?
    Estou com alguns problemas para poder conseguir desenvolver.

    Obrigado

  15. Ricardo says:

    Boas, não sei se deve postar aqui ou não, eu tenho de fazer uma aplicação movel, exactamente com este conceito de enviar email pela aplicação movel…será que me podem ajudar, ja pesquisei e não encontrei nada. Obrigado

  16. Marcos Vinicius says:

    Poderia disponibilizar o codigo? obrigado

  17. Its me says:

    E teria como mandar para uma lista de pessoas?

    Qual seria o código para eu carregar essa lista de email de um arquivo txt?

    Obrigado

  18. francisco says:

    nao da para por o codigo, nao consigo por a funcionar

  19. David Magalhães says:

    Eu utilizei esse código para a minha aplicação, funciona perfeitamente, mas quando utilizo o software em rede ele não funciona, apenas no pc em que tenho o c# e desenvolvi o software.

    Alguém sabe o que pode estar mal ?

  20. Muito Bom!
    Foi de grande ajuda.

  21. Saulo says:

    Parabens Cara era exatamente o que eu queria

  22. Pedro S says:

    Boas

    Já fiz a aplicação no entanto diz que manda o email mas nao recebo nada ….

    Alguém me pode ajudar?

  23. João Carlos says:

    Boa tarde , estou a trabalhar em c# so que em vez de windows forms estou a trabalhar em Wpfapllication que é destinado a pda , todo o código funciona com um pequeno problema o anexo porque eu não tenho o botão openFileDialog então não consigo por o anexo a funcionar , ha algum botão que substituía este ? o que devo fazer ?

    Obrigado desde já , excelente trabalho muito bem explicito , parabéns

  24. joao says:

    Brilhante artigo!
    Agradeço imenso o trabalho.

  25. Lucas Schlottfeldt says:

    Caramba, funcionou.

    Parabéns cara, é simples e prático.
    Muito obrigado!!!!!

  26. kikokayon says:

    Boas

    Podias era por o downlowd do programa e do codigo sff se possivel xD

  27. Cícero Júnior says:

    Esse foi fácil de implementar.

    Tem como consultar a caixa de entrada de um e-mail via Código C# utilizando uma aplicação Windows Forms?

  28. Eduardo says:

    Obrigado. Fácil implementar. Parabéns pela explicação.

  29. Richiely says:

    Alguem sabe me falar como fazer pra enviar o email sem que obrigatoriamente se anexe algo?

    • Paulo Rocha says:

      É só colocar a linha abaixo:
      if (!String.IsNullOrEmpty(txtAnexos.Text))
      {
      System.Net.Mail.Attachment anexo = new System.Net.Mail.Attachment(txtAnexos.Text);
      message.Attachments.Add(anexo);
      }

  30. Cleiton says:

    Ola a todos
    eu estou com um probleminha aqui como não tenho domínio para colocar
    tentei colocar o do Gmail só que esta dando erro nessa linha
    code:
    smtp.Send(message);

    ha
    mais uma coisas nas Credentials devemos colocar o que no “oMeuUserName” e que senha
    code:
    smtp.Credentials = new System.Net.NetworkCredential(“oMeuUsername”, “Password”);

  31. Madson R. Lima says:

    Perfeito! De todos os que vi, esse é o melhor.

    Mas estou com dois problemas:

    1) Toda vez que tento colocar mais de um e-mail separando por “;” me apresenta a seguinte mensagem de erro: A seqüência de caracteres especificada não está no formato necessário para um endereço de email.

    2) Não consegui criar uma forma de não enviar algum arquivo anexo. Toda vez que tendo apresenta essa mensagem: O parâmetro ‘fileName’ não pode ser uma seqüência de caracteres vazia.
    Nome do parâmetro: fileName

  32. Aonde eu posso baixar o codigo fonte? eu posso utilizar essa maneira para um envio de email de cobrança?

  33. Hélio Moreira says:

    Olá Guilherme Walter,

    Nestes tutoriais mais antigos não é possível efectuar o download do código fonte.

    Contudo, se fizer tal como está explicado funcionará perfeitamente.

    Sim, pode utilizar este método para qualquer tipo de envio de emails.

    Cumps,
    Hélio Moreira

  34. Mauricio Dias says:

    Eu fiz todo o procedimento, que o tutorial explica, porém não tive êxito.

    Aparece a seguinte mensagem, para o campos: Para, CC, Assunto e mensagem:

    “The name ‘TbPara’ does not exist in the current context”

    Defini variável e tirei o “.Text”, mas mesmo assim não consegui. Além deste erro a sintaxe: “txtAttachmentPath.Text”, também não é reconhecida.

    Pode(m) me falar onde estou errando?

    Grato,

    Mauricio Dias de Jesus.

  35. adorei era o que eu preocurava durante duas semanas

  36. Mario Filipe says:

    olá! primeiro tenho de te parabenizar por este feito,
    fiz a aplicação conforme a descrição dos códigos acima mencionados, aplicação está funcionar e já autentetiquei, só que está apresentar
    um erro que não estou entender ao que se deve o mesmo.
    gostaria que me ajudasse.

    • Hélio Moreira says:

      Olá Mario, antes de mais obrigado pelo teu comentário. Pode dizer qual é o erro? De preferires podes enviar email para helio.moreira[at]pplware.com

      Abraço

  37. Matheus says:

    Qual é a ordem dos códigos, onde eu coloco a grande parte do código? Da primeira parte até a terceira do código não sei onde colocar.

  38. Matheus says:

    Não consigo enviar o email da um erro na linha do código
    smtp.send(message);
    o que eu faço?

    • Ricardo says:

      Estou com o mesmo erro na linha smtp.send(message);

      An unhandled exception of type ‘System.Net.Mail.SmtpException’ occurred in System.dll

      creio que seja a Exception que foi comentado no código que poderia acontecer, mas como se resolve isso?

    • Ricardo says:

      consegui resolver, o problema é que estava faltando uma porta, colocando a seguinte linha resolve o problema

      smtp.Port = 587;

      Obs.: coloquei essa linha de código logo acima do
      smtp.Credentials

  39. Hélio Moreira says:

    Caro @Matheus,

    Pode indicar qual o erro que está a dar?

    Cumps,
    Hélio Moreira

  40. Paulo Rocha says:

    Hélio! Parabéns pelo tutorial.
    Seu código é espetacular, muito simples e útil.

    Porém gostaria que você colocasse um código para colocar a assinatura automaticamente. Tentei achar com smtp ponto e não veio na janela uma opção adequada.

    Outro coisa é preciso incluir uma validação do e-mail do destinatário. Eu tenho o código, mas não sei onde implementar.

  41. Leonardo Lopes says:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace Proteçãodados
    {
    public partial class Form2 : Form
    {
    public Form2()
    {
    InitializeComponent();
    }

    private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
    {

    }

    private void Form2_Load(object sender, EventArgs e)
    {
    }
    public void SendEmail()
    {

    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add(tbPara.Text);
    message.CC.Add(tbCC.Text);

    System.Net.Mail.Attachment anexo = new System.Net.Mail.Attachment (txtAttachmentPath.Text);
    message.Attachments.Add(anexo);

    message.Subject = tbAssunto.Text;
    message.From = new System.Net.Mail.MailAddress(“leoboss619@gmail.com”);
    message.Body = tbMensagem.Text;

    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
    smtp.Host = “smtp.gmail.com”;
    smtp.Port = 587;
    smtp.Credentials = new System.Net.NetworkCredential(“leoboss619@gmail.com”, “leo99leo99”);
    smtp.Send(message);
    MessageBox.Show(“Email enviado com sucesso!”, “Informação”, MessageBoxButtons.OK, MessageBoxIcon.Information);
    }

    private void btEmail_Click(object sender, EventArgs e)
    {
    //Aqui chamei a funnção SendEmail
    SendEmail();
    }

    private void anexo_Click(object sender, EventArgs e)
    {
    //Aqui chamaei a função para podermos adicionar um anexo
    openFileDialog1.ShowDialog();
    txtAttachmentPath.Text = openFileDialog1.FileName;

    }

    private void button1_Click(object sender, EventArgs e)
    {
    //Fecha a aplicação
    Application.Exit();
    }
    }

    }

  42. Leonardo Lopes says:

    Alguém consegue me ajudar ? segui os passos acima referidos.

  43. Leonardo Lopes says:

    Faço todo o processo mas quando carrego no botão para enviar o e-mail ele não faz nada e dá erro na linha de código:

    smtp.Send(message);

  44. pedro moreira says:

    System.Net.Mail.SmtpException (falha ao enviar o email)
    em smtp.Send(message);

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.