Exemplo básico de envio de email usando Delphi e Indy 9:
1 var
2 Email: TIdMessage;
3 begin
4 // SMTP é um TIdSMTP
5 // POP3 é um TIdPOP3;
6
7 Email := TIdMessage.Create(nil);
8 try
9
10 // ...ajusta remetente, destinatário, etc da mensagem...
11
12 POP3.Host := 'seu-servidor-pop3';
13 POP3.Username := 'seu-username';
14 POP3.Password := 'sua-senha-secreta';
15
16 POP3.Connect;
17
18 try
19 SMTP.Host := 'seu-servidor-smtp';
20 SMTP.AuthType := atLogin;
21 SMTP.Username := 'seu-username';
22 SMTP.Password := 'sua-senha-secreta';
23
24 SMTP.Connect;
25 try
26 SMTP.Send(Email);
27 except
28 on E: Exception do begin
29 // envio falhou
30 end;
31 end;
32 SMTP.Disconnect;
33 finally
34 POP3.Disconnect;
35 end;
36 finally
37 Email.Free;
38 end;
39 end;
Pontos importantes:
- Nem todo servidor SMTP requer autenticação: nesse caso, TIdSMTP.AuthType, TIdSMTP.Username e TIdSMTP.Password podem ser omitidos.
- Nem todo servidor SMTP exige que antes se conecte ao servidor POP3: nesse caso, tudo que é relacionado com o servidor POP3 pode ser omitido. Note que quando isso é necessário, deve se permanecer conectado ao servidor POP3 enquanto estiver usando o servidor SMTP.
- Permamenecer conectado aos servidores POP3 e SMTP o mínimo de tempo possível. A maioria desses servidores irá desconectar o cliente por inatividade ou por tempo.
- Este exemplo não funciona com o GMail e outros servidores que usam SSL