PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

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

Flávio Henr4ique

Responder

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

Aceitar