Claro... el código no tiene nada de particular y creo que ha salido de ejemplos de por aquí (si mal no recuerdo de un ejemplo que adjuntó ROMAN en su día).
He extraido lo básico para no alargar mucho el tema. Los valores que no cambio se supone que coge por defecto los del componente.
Código Delphi
[-]
procedure TFormEnviaCorreoSSL.btnEnviarCorreoClick(Sender: TObject);
var
IdEnviar: TIdMessage;
N,iPuerto: SmallInt;
ElDestinatario: TIdEmailAddressItem;
begin
iPuerto:=587; IdEnviar := TIdMessage.Create(Self);
IdEnviar.Body.Text := MemoTexto.Text; IdEnviar.From.Address := EditCuentaRemitente.Text ; IdEnviar.From.Name := EditNombre.Text ; IdEnviar.Subject := EditAsunto.Text ; for N := 0 to MemoDestinatarios.Lines.Count-1 do begin
if MemoDestinatarios.Lines[N]<>'' then begin
ElDestinatario := IdEnviar.Recipients.Add;
ElDestinatario.Address := MemoDestinatarios.Lines[N];
end;
end;
IdSMTP1.Host := smtp-mail.outlook.com;
IdSMTP1.UserName := xxxxxx;
IdSMTP1.Password := xxxxx;
IdSMTP1.Port := iPuerto;
idSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
idSMTP1.UseTLS := utUseExplicitTLS;
Try
IdSMTP1.Connect;
IdSMTP1.Send(idEnviar);
except
raise;
ShowMessage('¡ATENCION! Problema de conexion');
exit;
end;
IdSMTP1.Disconnect(true);
ShowMessage('Correo enviado');
end;
Gracias y un saludo