Olha esta rotina!
function TForm1.EnviaMail(Email,
Conta,
Senha,
Autentica,
Smtp,
Auth_SSL,
Nom_exibe,
Porta_smtp,
Corpo,
Destinatario,
Assunto : String) : Boolean;
var
Mensagem: TIdMessage;
cnxSMTP: TIdSMTP;
begin
Result := True;
try
Mensagem := TIdMessage.Create(nil); // crio os componemtes em tempo de execução
cnxSMTP := TIdSMTP.Create(nil);
Mensagem.From.Name := 'REMETENTE'; // Nome do Remetente
Mensagem.From.Address := Email; // E-mail do Remetente = email valido...
Mensagem.Recipients.EMailAddresses := Destinatario; // destinatario
Mensagem.Priority := mpHighest;
Mensagem.Subject := Assunto; // Assunto do E-mail
cnxSMTP.Host := Smtp; // smtp terra}
cnxSMTP.Username := Conta;
cnxSMTP.Password := Senha;
if Autentica = 'S' then
cnxSMTP.AuthenticationType := atLogin;
if Autentica = 'N' then
cnxSMTP.AuthenticationType := atNone;
cnxSMTP.Port := StrToInt(Porta_smtp);
Mensagem.Body.Clear;
Mensagem.Body.Add(Corpo);
cnxSMTP.Connect;
try
cnxSMTP.Send(Mensagem);
except
showmessage('Erro ao tentar enviar o email para ' + Destinatario + ' 1ª Tentativa');
end;
cnxSMTP.Disconnect;
cnxSMTP.Host := Smtp; // smtp
cnxSMTP.AuthenticationType := atNone;
cnxSMTP.Connect;
try
cnxSMTP.Send(Mensagem);
except
begin
showmessage('Erro ao tentar enviar o email para ' + Destinatario + ' 2ª Tentativa');
Result := false;
showmessage('Não pode enviar o email para ' + Destinatario + #13#13 + 'Verifique as configurações da conta!');
end;
end;
cnxSMTP.Disconnect;
finally
Mensagem.free; // destruo se não ha uso
cnxSMTP.free;
end;
if Result then
showmessage('E-Mail teste enviado para ' + Destinatario);
end;