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.
Saiba mais: Guia Completo de Delphi
É 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:
- Inicie um novo projeto;
- Coloque um componente TNMSMTP (localizado na paleta FastNet) no formulário;
- Coloque um botão e dê um duplo clique sobre ele para acessar o evento OnClick do mesmo;
- 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.
Curso: Curso de Delphi
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.