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.