Ver Mensaje Individual
  #4  
Antiguo 03-03-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Reputación: 21
newtron Va camino a la fama
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; { e-mail del que envía }
  IdEnviar.From.Name     := DlgPropiedades.NombreEmpresa; { El nombre del que envía }
  IdEnviar.Subject       := Subject;

  TIdAttachmentFile.Create(IdEnviar.MessageParts, GetTempDir+'\DOCUMENTO.PDF'); //Para adjuntar archivos al mensaje

  ListaDestinatarios:=CargaRegistro(Correo,';');

  for N := 0 to ListaDestinatarios.Count - 1 do begin
    ElDestinatario         := IdEnviar.Recipients.Add;
    ElDestinatario.Address := ListaDestinatarios[N]; { Primer destinatario }
  end;
//  ElDestinatario.Name    := 'Nombre del primer destinario';
  If Copia<>'' then begin
    ElDestinatario         := IdEnviar.Recipients.Add;
    ElDestinatario.Address := Copia; { Primer destinatario }
  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;
//    IdSSLIOHandlerSocketOpenSSL.Host :=TablaDatos.FieldByname('HOSTCO').AsString;
//    IdSSLIOHandlerSocketOpenSSL.Destination :=TablaDatos.FieldByname('HOSTCO').AsString+':'+IntToStr(IdSMTP1.Port);
  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);
__________________
Be water my friend.
Responder Con Cita