Erro ao tentar enviar e-mail pelo delphi xe5

15/04/2016

0

Salve, salve delphianos!!!

Criei uma rotina no meu programa para capturar todas as telas de erros, zipar e posteriormente enviar para o meu email para que assim eu efetue as correções necessárias. Com tudo a "moça bonita - chamada delphi xe5" tá batendo só na cara pra não tirar a tirar a calçinha - kkkkk.... sempre dá erro ao conectar ao servidor de email para enviar.

ALGUÉM PODE ME AJUDAR? DAR UMA LUZ NESSE TUNEL ESCURO.... DE ANTE MAO JA AGRADEÇO


meu código esta escrito assim:

Var nomeArq:string;
ano, mes, dia, hor, min, seg, Mseg:word;
i : Integer;
FileIni, FileOut: TFileStream;
Zip: TCompressionStream;
slFiles: TStringList;

IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
IdText: TIdText;
sAnexo: string;
begin
{MessageDlg(E.Message + #13#13 +
'Reinicie o sistema!',
mtError, [mbOK], 0);}
//...Captura e salva a tela atual do erro.
try
Captura.picture.Assign(CaptureScreenRect(Rect(0,0,Screen.Width,Screen.Height)));
DecodeDateTime(Now,ano,mes,dia,hor,min,seg,mseg);
nomeArq := IntToStr(dia)+'_'+FormatFloat('00',mes)+'_'+IntToStr(ano)+' - '+IntToStr(hor)+'h '+IntToStr(min)+'min e '+IntToStr(seg)+'seg '+ lnome;
nomeArq := ExtractFilePath(Application.ExeName)+ 'erros\' +nomeArq;
BmpToJpg(Captura.picture.Bitmap, nomeArq);
except
end;
//...Compacta em Anexo a Pasta com as Imagens de Erros Capturada.
slFiles := TStringList.Create;
EnumFiles(ExtractFilePath(Application.ExeName)+ 'erros', '*', faAnyFile - faDirectory, slFiles, True, True);
CompressFiles(slFiles, 'erros' + '.zip');
slFiles.Free;

if InternetCheckConnection('http://www.google.com/',1,0) then
begin

// instanciação dos objetos
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSMTP := TIdSMTP.Create(Self);
IdMessage := TIdMessage.Create(Self);
try
// Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;

// Configuração do servidor SMTP (TIdSMTP)
IdSMTP.IOHandler := IdSSLIOHandlerSocket;
IdSMTP.UseTLS := utUseImplicitTLS;
IdSMTP.AuthType := satDefault;
IdSMTP.Port := 465;
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Username := 'zumbinho@gmail.com';
IdSMTP.Password := 'bandodeloucos';

// Configuração da mensagem (TIdMessage)
IdMessage.From.Address := 'zumbinho@gmail.com';
IdMessage.From.Name := 'Nome do Remetente';
IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
IdMessage.Recipients.Add.Text := 'marcosmta@hotmail.com';
IdMessage.Subject := 'Verificar Erro no Ascom 1.0';
IdMessage.Encoding := meMIME;

// Configuração do corpo do email (TIdText)
IdText := TIdText.Create(IdMessage.MessageParts);
IdText.Body.Add('Corpo do e-mail');
IdText.ContentType := 'text/plain; charset=iso-8859-1';

// Opcional - Anexo da mensagem (TIdAttachmentFile)
sAnexo := ExtractFilePath(Application.ExeName)+ 'Erros.zip';
if FileExists(sAnexo) then
begin
TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
end;

// Conexão e autenticação
try
IdSMTP.Connect;
IdSMTP.Authenticate;
except
on E:Exception do
begin
MessageDlg('Erro na conexão ou autenticação: ' +
E.Message, mtWarning, [mbOK], 0);
Exit;
end;
end;

// Envio da mensagem
try
IdSMTP.Send(IdMessage);
MessageDlg('Mensagem enviada com sucesso!', mtInformation, [mbOK], 0);
except
On E:Exception do
begin
MessageDlg('Erro ao enviar a mensagem: ' +
E.Message, mtWarning, [mbOK], 0);
end;
end;
finally
// desconecta do servidor
IdSMTP.Disconnect;
// liberação da DLL
UnLoadOpenSSLLibrary;
// liberação dos objetos da memória
FreeAndNil(IdMessage);
FreeAndNil(IdSSLIOHandlerSocket);
FreeAndNil(IdSMTP);
end;
end;
Hardsoft Informática

Hardsoft Informática

Responder

Posts

15/04/2016

Raylan Zibel

Blz, mas qual a mensagem da exceção levantada? Qual o erro original?
Responder

15/04/2016

Hardsoft Informática

Aparece msg se bem me lembro é

Erro na conexão ou autenticação: <https://accounts.google.com.br/signin/xontinue?sarp..
Responder

16/04/2016

Hardsoft Informática

Ninguém pea ajudar???
Responder

16/04/2016

Hamilton Oliveira

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. Depende da versão da indy que vc está usando. Essa aqui é do delphi 7.

http://indy.fulgan.com/SSL/indy_OpenSSL096m.zip



Após baixa-las, descompacte-as no diretório C:\WINDOWS\System32, ou junto ao seu executável.



Leia mais em: Envio de E-mail usando o componente indy usando SMTP Gmail https://www.devmedia.com.br/envio-de-e-mail-usando-o-componente-indy-usando-smtp-gmail/9107#ixzz462YVKKYd
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar