Fórum Problema Com TIdSMTP #458946
19/10/2013
0
Está função esta dando erro na linha idSMTP.Send(lMensagem) e está dando o seguinte erro Idsmtp reply error must issue a starttls command first .
function TFormRecuperarSenha.EnviaEmail(destino : String; Assunto : String; Mensagem : TStrings) : Boolean;
var
IdSMTP : TIdSMTP;
lMensagem : TIdMessage;
i,x : Integer;
Linha : String;
begin
Result := False;
if destino = EmptyStr then
begin
MessageBox(Handle,'Destinatario Não informado.','Erro',MB_ICONERROR + MB_OK);
Exit;
end;
try
IdSMTP := TIdSMTP.Create(Application);
try
lMensagem := TIdMessage.Create(Application);
idSMTP.Username := 'laboratorioifpr600@gmail.com';
idSMTP.Password := '';
idSMTP.Host := 'smtp.gmail.com';
idSMTP.Port := 587 ;
try
idSMTP.Connect;
try
with lMensagem do
begin
ContentType := 'text/html';
Subject := Assunto; // assunto
From.Name := 'Laboratório IFPR Londrina';
From.Address := 'laboratorioifpr600@gmail.com';
Recipients.EmailAddresses := destino; // email de destino
Body.Add('<html>');
for i := 0 to Mensagem.Count-1 do
begin
Linha := EmptyStr;
for x := 1 to Length(Mensagem.Strings[i]) do if MidStr(Mensagem.Strings[i],x,1) = #32 then Linha := Linha+' ' // ' '
else Linha := Linha+MidStr(Mensagem.Strings[i],x,1);
Body.Add(Linha+'<BR>');
end;
Body.Add('</html>');
try
idSMTP.Send(lMensagem); // Está Dando Erro Nessa Linha
Result:=True;
except
on e : Exception do
begin
MessageBox(Handle,'Falha no envio do e-mail. Tente mais tarde.','Erro',MB_ICONERROR + MB_OK);
Messagebox(Handle,PAnsiChar(e.ClassName+' erro gerado, com mensagem : '+e.Message),'Erro',MB_ICONERROR + MB_OK);
Result:=False;
end;
end;
end;
finally
idSMTP.Disconnect;
end;
Except
MessageBox(Handle,'Falha na conexão com internet. Tente mais tarde.','Erro',MB_ICONERROR + MB_OK);
End;
finally
lMensagem.Free;
end;
finally
IdSMTP.Free;
end;
end;
Flávio Henr4ique
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)