Código
email pelo Delphi usando o servidor SMTP do Yahoo, e agora posto aqui
como faze-lo usando o Gmail, que tem alguns detalhes a mais...
O Gmail utiliza um sistema de criptografia chamado SSL, e para podermos
conectar nossa aplicação à ele, necessitamos de duas dlls especificas:
libeay32.dll e ssleay32.dll. Elas podem ser encontradas no link abaixo:
http://indy.fulgan.com/SSL/indy_OpenSSL096m.zip
Após baixa-las, descompacte-as no diretório C:WINDOWSSystem32
Feito isso podemos iniciar nosso projeto. Insira no form os seguintes
componentes: IdSMTP (paleta Indy Clients), IdMessage (paleta Indy
Misc), IdSSLIOHandlerSocket (paleta Indy I/O Handlers) e um botão.
Para facilitar, renomeie o nome dos componentes para SMTP, MSG e
SSLSocket, respectivamente.
Agora no OnCreate do form:
procedure TForm1.FormCreate(Sender: TObject);
begin
with SMTP do
begin
AuthenticationType := atLogin;
Host := 'smtp.gmail.com';
IOHandler := SSLSocket;
Password := 'sua senha no gmail';
Port := 465;
Username := 'seulogin@gmail.com'; //não esqueça o @gmail.com!!
end;
SSLSocket.SSLOptions.Method := sslvSSLv2;
SSLSocket.SSLOptions.Mode := sslmClient;
end;
Exemplo simples de uso com um botão:
procedure TForm1.Button1Click(Sender: TObject);
begin
with MSG do
begin
Body.Add('corpo da mensagem');
From.Address := 'email do remetente'; //opcional
From.Name := 'nome do remetente'; //opcional
Recipients.Add;
Recipients.Items[0].Address := 'shaokhann@gmail.com';
Recipients.Items[0].Name := 'nome do destinatario'; //opcional
Subject := 'assunto da mensagem';
end;
try
SMTP.Connect();
SMTP.Send(MSG);
SMTP.Disconnect;
except
ShowMessage('Falha no envio!');
exit;
end;
ShowMessage('Mensagem enviada com sucesso!');
end;
Shelon Andriel Marini
shaokhann@gmail.com
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009