Ver Mensaje Individual
  #5  
Antiguo 07-12-2004
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Reputación: 22
Nbull Va por buen camino
Hola Burasu, a mi me pasaba lo mismo, eso pasa por que algunos servidores necesitan una autentificacion para poder enviar mensajes a otros servidores que no sean el propio.Yo lo solucione gastando Los componentes Indy, para ello tuve que pasarme de Delphi 4 a Delphi 7 y con el siguiente codigo me funcionó de lujo.

Código Delphi [-]

var
i:integer;
begin
Memo.Lines.Add('Verificando el Usuario...');
form6.ShowModal;
if(Form6.Desconectar=0) Then
begin
Memo.clear;
  //Autentificación en el servidor
  IdSMTP1.AuthenticationType :=atLogin;
  IdSMTP1.Username := trim(txtUsuario.Text);
  IdSMTP1.Password :=trim(txtclave.Text) ;
  // Nombre del Servidor ...
  IdSMTP1.Host:=trim( txtServidor.Text );
  // Puerto de correo ...
  IdSMTP1.Port:=25;

  try
    Memo.Lines.Add('Conectando con ' + trim( txtServidor.Text ) + ', puerto 25' );
    // Conectando ...
    IdSMTP1.Connect;
  Except
    // Imposible conectar con el servidor de correo ...
    Memo.lines.add('Fallo en la conexion con el servidor SMTP.');
    Exit;
  end;
    Memo.lines.add( 'Componiendo mail ...' );
    with Mensaje do begin
      // Dirección origen ...
      if ( trim( txtDe.Text ) <> '' ) then
        From.Text:= trim( txtDe.Text )
      else
        From.Text:='[email protected]';
      Memo.lines.add( 'Direccion origen : ' +   From.Text );
      // Dirección destino. Se pueden indicar varias  ...
      Recipients.EMailAddresses:=( trim( txtPara.Text ) );
      Memo.lines.add( 'Dirección destino : ' + trim( txtPara.Text ) );
      // Direcciones copia. Se pueden indicar varias ...
      if( trim( txtCC.Text ) <> '' ) then begin
        CClist.EMailAddresses:=( trim( txtCC.Text ) );
        Memo.lines.add( 'CC : ' + trim( txtCC.Text ) );
      end;
       // Titulo del mail ...
      if( trim( txtAsunto.Text )='' ) then
        subject:='[Sin titulo]'
      else
        subject:= trim( txtAsunto.Text );
      Memo.lines.add( 'Asunto : ' + subject );
      // Adjuntos. Se pueden indicar varios ...
      if ( trim( txtAdjunto.Text ) <> '') then
      begin
        TIdAttachment.Create(Mensaje.MessageParts,txtAdjunto.Text );
        Memo.lines.add( 'Archivo Adjunto : ' + trim( txtAdjunto.text ) );
      end;
      if(MemoAdjunto.Visible=true) then
      begin
        for i:=0 to MemoAdjunto.Lines.Count-1 do
          TIdAttachment.Create(Mensaje.MessageParts,MemoAdjunto.Lines[i] );
        Memo.lines.Add( 'Archivos Adjuntos :');
        Memo.lines.AddStrings( MemoAdjunto.Lines  );
      end;
      // Cuerpo del mail ...
      if ( mCuerpo.Lines.Count > 0 ) then begin
        body.Assign(mCuerpo.Lines);
        Memo.lines.add( 'Añadiendo cuerpo del E-mail ...' );
        Memo.lines.add( ' ' );
      end;
      Memo.lines.add( 'Enviando ... ');
      // Enviando mail ...
      if ( trim( txtPara.Text ) <> '' ) then begin
        IdSmtp1.Send(mensaje);
        Memo.lines.add( 'E-Mail enviado.');
      end else
        Memo.lines.add( 'E-Mail no enviado, no se especificó dirección de destino.' );
      // Desconectando ...
      IdSmtp1.Disconnect;
    end;
    Memo.lines.add( 'Desconectado');

Se que hace unos meses que posteaste este asunto y que a lo mejor ya lo has solucionado, pero, de todas formas seguro que alguien le pasara lo mismo que a nosotros y aquí tienen la solución.

PD:En delphi 7 no funcionan o no lo lleva instalados por defecto los componentes NmSmtp.

Un saludo.
Responder Con Cita