Delphi 2010 - enviando email através do Indy 10
Alguém já conseguiu enviar email utilizando o Indy?
Se sim, como fazer a configuração do IdSMTP e IdMessage?
Se sim, como fazer a configuração do IdSMTP e IdMessage?
Welson Play
Curtidas 0
Respostas
Gustavo Bretas
30/09/2011
GOSTEI 0
Mayconn Willian
30/09/2011
Eu fiz assim
Primeiro Coloque estas DLLs dentro da pasta do projeto
www.megaupload.com/?d=8MBJR15V
{Upei no megaupload pq era onde eu tinha conta, mas no site oficial da Indy vc tbm encontra estas Dlls se preferir}
No Uses da classe ou form declare
IdComponent, IdTCPConnection,IdTCPClient,
IdMessageClient, IdSMTP, IdBaseComponent, IdMessage, IdAttachmentFile,
IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
IdExplicitTLSClientServerBase, IdSMTPBase;
function TEmail.Envio: Boolean;
var
Anexo : TIdAttachmentFile;
IdCorpo : TIdMessageFlags;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
begin
try
mensagen := TIdMessage.Create(nil);
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create;
clientSmtp := TIdSMTP.Create(nil);
clientSmtp.Host := SMTP;
clientSmtp.Username := EMAILDEENVIO;
clientSmtp.Password := SENHA;
clientSmtp.Port := StrToInt(PORTA);
Application.ProcessMessages;
mensagen.From.Address := EMAILDEENVIO ;
mensagen.ReplyTo.EMailAddresses := EMAILDEENVIO;
mensagen.From.Name := NOMEDAEMPRESA;
mensagen.Recipients.EMailAddresses := EMAILDOCLIENTE;
mensagen.Subject := ASSUNTO;
mensagen.ContentType := multipart/mixed;
mensagen.Body.Text := MENSAGEM
Anexo := TIdAttachmentFile.Create(mensagen.MessageParts,C:\Arquivo.pdf);
Anexo.ContentType := application/pdf;;
if EMAILSEGURO = 1 then
clientSmtp.Authenticate;
if USARSSL = 1 then
begin
clientSmtp.IOHandler := IdSSLIOHandlerSocketOpenSSL;
clientSmtp.UseTLS := utUseImplicitTLS;
end;
Try
clientSmtp.Connect;
Application.ProcessMessages;
clientSmtp.Send(mensagen);
Application.ProcessMessages;
if clientSmtp.Connected then
clientSmtp.Disconnect;
Application.ProcessMessages;
except
MessageDlg(Falha no Envio, verifique suas configurações de email.,mtInformation,[mbOk],0);
End;
finally
mensagen.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
clientSmtp.Free;
end;
Result := True;
end;
Se não conseguirem entender o codigo ou der algum erro avise que eu tento responder .
flow ...
xmayconnx@hotmail.com
Primeiro Coloque estas DLLs dentro da pasta do projeto
www.megaupload.com/?d=8MBJR15V
{Upei no megaupload pq era onde eu tinha conta, mas no site oficial da Indy vc tbm encontra estas Dlls se preferir}
No Uses da classe ou form declare
IdComponent, IdTCPConnection,IdTCPClient,
IdMessageClient, IdSMTP, IdBaseComponent, IdMessage, IdAttachmentFile,
IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
IdExplicitTLSClientServerBase, IdSMTPBase;
function TEmail.Envio: Boolean;
var
Anexo : TIdAttachmentFile;
IdCorpo : TIdMessageFlags;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
begin
try
mensagen := TIdMessage.Create(nil);
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create;
clientSmtp := TIdSMTP.Create(nil);
clientSmtp.Host := SMTP;
clientSmtp.Username := EMAILDEENVIO;
clientSmtp.Password := SENHA;
clientSmtp.Port := StrToInt(PORTA);
Application.ProcessMessages;
mensagen.From.Address := EMAILDEENVIO ;
mensagen.ReplyTo.EMailAddresses := EMAILDEENVIO;
mensagen.From.Name := NOMEDAEMPRESA;
mensagen.Recipients.EMailAddresses := EMAILDOCLIENTE;
mensagen.Subject := ASSUNTO;
mensagen.ContentType := multipart/mixed;
mensagen.Body.Text := MENSAGEM
Anexo := TIdAttachmentFile.Create(mensagen.MessageParts,C:\Arquivo.pdf);
Anexo.ContentType := application/pdf;;
if EMAILSEGURO = 1 then
clientSmtp.Authenticate;
if USARSSL = 1 then
begin
clientSmtp.IOHandler := IdSSLIOHandlerSocketOpenSSL;
clientSmtp.UseTLS := utUseImplicitTLS;
end;
Try
clientSmtp.Connect;
Application.ProcessMessages;
clientSmtp.Send(mensagen);
Application.ProcessMessages;
if clientSmtp.Connected then
clientSmtp.Disconnect;
Application.ProcessMessages;
except
MessageDlg(Falha no Envio, verifique suas configurações de email.,mtInformation,[mbOk],0);
End;
finally
mensagen.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
clientSmtp.Free;
end;
Result := True;
end;
Se não conseguirem entender o codigo ou der algum erro avise que eu tento responder .
flow ...
xmayconnx@hotmail.com
GOSTEI 0