Hola.
Te envío un trozo de código de lo que yo uso, usando SSL. Si algo no ves claro me preguntas.
Saludos
Código Delphi
[-]
IdEnviar := TIdMessage.Create(Self);
TextoMensaje:=Texto+#13+#10+Firma+#13+#10+TablaDatos.FieldByname('TEXTOMAIL').Value;
IdEnviar.Body.Text := TextoMensaje;
IdEnviar.From.Address := CorreoPropio;
IdEnviar.From.Name := DlgPropiedades.NombreEmpresa;
IdEnviar.Subject := Subject;
TIdAttachmentFile.Create(IdEnviar.MessageParts, GetTempDir+'\DOCUMENTO.PDF');
ListaDestinatarios:=CargaRegistro(Correo,';');
for N := 0 to ListaDestinatarios.Count - 1 do begin
ElDestinatario := IdEnviar.Recipients.Add;
ElDestinatario.Address := ListaDestinatarios[N];
end;
If Copia<>'' then begin
ElDestinatario := IdEnviar.Recipients.Add;
ElDestinatario.Address := Copia;
end;
Application.ProcessMessages ;
IdSMTP1.Host := Host;
IdSMTP1.UserName := UserId;
IdSMTP1.Password := Pass;
if Puerto<>0 then IdSMTP1.Port:= Puerto;
if(TablaDatos.FieldByName('TLSMAIL').AsString<>'') and (Copy(TablaDatos.FieldByName('TLSMAIL').AsString,1,1)<>'1') then begin
idSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
if Copy(TablaDatos.FieldByname('TLSMAIL').AsString,1,1)='2' then begin
idSMTP1.UseTLS := utUseExplicitTLS;
end else if Copy(TablaDatos.FieldByname('TLSMAIL').AsString,1,1)='3' then begin
idSMTP1.UseTLS := utUseImplicitTLS;
end else if Copy(TablaDatos.FieldByname('TLSMAIL').AsString,1,1)='4' then begin
idSMTP1.UseTLS := utUseRequireTLS;
end else begin
idSMTP1.UseTLS := utNoTLSSupport;
end;
end;
Bd.CierraTabla (TablaDatos);
Try
IdSMTP1.Connect;
try
IdSMTP1.Send(idEnviar);
finally
end;
except
raise;
ShowMessage('¡ATENCION! Problema de conexion');
Close;
end;
IdSMTP1.Disconnect(true);