Erro ao tentar enviar e-mail pelo delphi xe5

MySQL

Delphi

Automação Comercial

Off Topic

15/04/2016

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

Curtidas 0

Mais Respostas

Raylan Zibel

Raylan Zibel

15/04/2016

Blz, mas qual a mensagem da exceção levantada? Qual o erro original?
GOSTEI 0
Hardsoft Informática

Hardsoft Informática

15/04/2016

Aparece msg se bem me lembro é

Erro na conexão ou autenticação: <https://accounts.google.com.br/signin/xontinue?sarp..
GOSTEI 0
Hardsoft Informática

Hardsoft Informática

15/04/2016

Ninguém pea ajudar???
GOSTEI 0
Hamilton Oliveira

Hamilton Oliveira

15/04/2016

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
GOSTEI 0
POSTAR