Enviar E-mail no Delphi

Neste artigo iremos desenvolver uma simples aplicação para o envio de e-mail usando o componente TNMSMTP (da paleta FastNet) do Delphi 5.

Neste artigo iremos desenvolver uma simples aplicação para o envio de e-mail usando o componente TNMSMTP (da paleta FastNet) do Delphi 5.

O objetivo aqui não é criar um aplicativo completo para manipulação de de e-mails até porque este seria um processo um tanto trabalhoso, mas quero aqui somente dar uma dica para sofisticar o seu software, fazendo com que o usuário do seu software possa enviar um e-mail (com anexo ou não) sem sair da sua aplicação.

É muito fácil executar este exemplo, isso porque o Delphi 5 nos oferece o componente TNMSMTP qu faz praticamente todo o trabalho pra nós. Basta somente alterar algumas propriedades e chamar alguns métodos para que a mensagem seja enviada corretamente. Então vamos lá:

Siga os passos abaixo para executar este exemplo:

  1. Inicie um novo projeto;
  2. Coloque um componente TNMSMTP (localizado na paleta FastNet) no formulário;
  3. Coloque um botão e dê um duplo clique sobre ele para acessar o evento OnClick do mesmo;
  4. Escreva o seguinte código:
procedure TForm1.Button1Click(Sender: TObject); begin { Aqui você coloca o seu servidor SMTP } NMSMTP1.Host := 'smtp.servidor.com.br'; { Porta SMTP, Esta porta não deve ser alterada!} NMSMTP1.Port := 25; {Seu Nome de login } NMSMTP1.UserID := 'SeuLogin'; { Aqui você se Conecta ao servidor } NMSMTP1.Connect; { Se ocorrer algum erro durante a conexão com o servidor, o aplicativo dá uma mensagem de erro } if not NMSMTP1.Connected then raise Exception.Create('Erro de conexão'); with NMSMTP1.PostMessage do begin {Aqui você digita o seu e-mail } FromAddress := 'meuemail@meuserver.com.br'; {Aqui você digita seu nome } FromName := 'Meu Nome'; {Aqui o E-mail do destinatário } ToAddress.Clear; ToAddress.Add('destinatario@servidor.com.br'); { Aqui é a parte do assunto da mensagem } Subject := 'Assunto da mensagem'; { Este será o corpo da mensagem } Body.Clear; Body.Add('1ª linha da mensagem'); Body.Add('2ª linha da mensagem'); Body.Add(''); { Linha em branco } Body.Add('última linha da mensagem'); { Anexar arquivos(Se não quiser anexar arquivos pode apagar as tres linhas seguintes) } Attachments.Clear; { Aqui deve conter o endereço do anexo } Attachments.Add('c:\diretorio_do_arquivo\arquivo.txt'); end; { Mandar o e-mail } NMSMTP1.SendMail; { É importante esta parte pois ela disconecta do servidor } NMSMTP1.Disconnect; end;

Pronto! É só adaptar as suas necessidades e você terá envio de e-mails em sua aplicação.

Lembrando que, para enviar o mesmo e-mail para múltiplos destinatários de uma só vez basta você adicionar os endereços de e-mails de todos os destinatários em NMSMTP1.PostMessage.ToAdress.

Se você usa o Delphi 7, você pode fazer uso dos componentes da Paleta indy.

A depender do provedor você pode encontrar problemas para enviar um e-mail, talves você precisará utilizar o componente NMPOP3 para se identificar ao provedor e mais, vale lembrar que nem todos os e-mails grátis tem serviço POP3.

Artigos relacionados