27 de jul. de 2010

Enviando e-mails com Indy através de uma conta do GMail

Além de toda a parafernália que a gente já sabe, para enviar emails pro Gmail, você precisa acrescentar as seguinte linhas:
SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
with SSL do begin
  Destination := SMTPHost + ':' + IntToStr(SMTPPort);
  Host := SMTPHost;
  MaxLineAction := maException;
  Port := SMTPPort;
  DefaultPort := 0;
  SSLOptions.Method := sslvTLSv1;
  SSLOptions.Mode := sslmUnassigned;
  SSLOptions.VerifyMode := [];
  SSLOptions.VerifyDepth := 0;
end;
SMTP.IOHandler := SSL;
SMTP.UseTLS := utUseExplicitTLS;
SMTP.UserName := SMTPUser;
SMTP.Password := SMTPPassword;

Porquê? Porque para enviar emails via Gmail, só via conexão segura, SSL (sslvTLSv1) .Nesse caso, as DLLs do OpenSSL tem de estar disponiveis pra sua aplicação.

Pra baixar o OpenSSL que rode com o Indy, vá em http://indy.fulgan.com/SSL/ e baixe de acordo com sua versão do Indy. Eu uso a versão OpenSSL 0.9.8h juntamente com o Indy que vem no Delphi 2007 e funciona bem. A unica limitação que achei foi fazer funcionar numa DLL ISAPI sob o IIS, pelo fato de que o IIS já tem seu próprio SSL.

Bom proveito.

Nenhum comentário:

Postar um comentário