Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Envio de Mail (https://www.clubdelphi.com/foros/showthread.php?t=67248)

ramonibk 07-04-2010 18:55:50

Envio de Mail
 
Buenos dias.

Os cuento que estoy intentando mandar un mail desde una aplicacion Delphi,
encontre en el blog de delphi al limite un procedimiento.

Código Delphi [-]
procedure EnviarMensaje( sUsuario, sClave, sHost, sAdjunto, sAsunto, sDestino, sMensaje: String );
var SMTP: TIdSMTP;
   Mensaje: TIdMessage;
   Adjunto: TIdAttachment;
begin
  // Creamos el componente de conexión con el servidor
  SMTP := TIdSMTP.Create( nil );
  SMTP.Username := sUsuario;
  SMTP.Password := sClave;
  SMTP.Host := sHost;
  SMTP.Port := 25;
  SMTP.AuthenticationType := atLogin;

  // Creamos el contenido del mensaje
  Mensaje := TIdMessage.Create( nil );
  Mensaje.Clear;
  Mensaje.From.Name := sDestino;
  Mensaje.From.Address := sDestino;
  Mensaje.Subject := sAsunto;
  Mensaje.Body.Text := sMensaje;
  Mensaje.Recipients.Add;
  Mensaje.Recipients.Items[0].Address := sDestino;

  // Si hay que meter un archivo adjunto lo creamos y lo asignamos al mensaje
  if sAdjunto <> '' then
  begin
    if FileExists( sAdjunto ) then
      Adjunto := TIdAttachment.Create( Mensaje.MessageParts, sAdjunto );
  end
  else
    Adjunto := nil;

  // Conectamos con el servidor SMTP
  try
    SMTP.Connect;
  except
    raise Exception.Create( 'Error al conectar con el servidor.' );
  end;

  // Si ha conectado enviamos el mensaje y desconectamos
  if SMTP.Connected then
  begin
    try
      SMTP.Send( Mensaje );
    except
      raise Exception.Create( 'Error al enviar el mensaje.' );
    end;

    try
      SMTP.Disconnect;
    except
      raise Exception.Create( 'Error al desconectar del servidor.' );
    end;
  end;

  // Liberamos los objetos creados
  if Adjunto <> nil then
    FreeAndNil( Adjunto );

  FreeAndNil( Mensaje );
  FreeAndNil( SMTP );

  Application.MessageBox( 'Mensaje enviado correctamente.',
    'Fin de proceso',MB_ICONINFORMATION );
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnviarMensaje( 'Avisos@empresa.e.telefonica.net',
                     'gestion',
                     'smtp.telefonica.net',
                     'C:\Documento.txt',
                     'Te envio mi documento',
                     'correo_receptor@gmail.com',
                     'Adjunto archivo: documento.zip' );

end;
Como veis las cuentas de emision es una de empresas de telefonica
y la de recepcion es una de Gmail.
si lo compilo en estas condiciones al pulsar el boton me da el siguiente error.

"EIdProtocolReplyError...... 5.7.0... Authentication Rejected"

Se que el servidor de telefonica requiere autentificacion pero para probar elimine la linea
Código Delphi [-]
SMTP.AuthenticationType := atLogin;

y el error a pasado a ser....

"EIdProtocolReplyError...... 5.1.0..... <correo_receptor@gmail.com> Sender rejected".

Alguna pista??????????

ramonibk 07-04-2010 19:36:30

Bueno he echo un cambio
he cambiado el servidor SMTP de telefonica por "smtp.telefonica.es" y lo que me da es un error de conexion 100060.

ramonibk 07-04-2010 20:31:20

parece que el problema son las cuentas de empresa de telefonica. lo he probado con una cuenta de telefonica normal y ha funcionado.

Alguna pista.?????

ramonibk 08-04-2010 19:57:07

Bueno parece que el problema al final radica en el servidor SMTP de telefonica empresas.

el servidor es SMTP.e.telefonica.net y al intentar esta direccion la aplicacion da problema "Error al conectar con el servidor".
esto solo ocurre con este servidor ues con el servidor de telefonica normal no da problemas.

MAXIUM 08-04-2010 20:30:12

Te recomiendo las librerías de Synapse con la función SendToEx. Fácil y si tanto enredeo, funciona tanto para Gmail como Hotmail, bien documentadas.


La franja horaria es GMT +2. Ahora son las 05:17:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi