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 archivos adjuntos con TIdSmtp (https://www.clubdelphi.com/foros/showthread.php?t=40315)

murci 13-02-2007 14:12:21

Envio de archivos adjuntos con TIdSmtp
 
Hola a todos, despues de ver distintos hilos sobre el tema, no he encontrado la solucion a mi problema. Os explico, tengo un procedimiento para enviar correos electronicos desde un aplicacion, pudiendo adjuntar archivos. Pues bien, los mails que envio sin fichero adjunto, llegan perfectamente, mientras que los que llevan un archico adjunto, no hay manera de que lleguen a su destino, aunque el TIdSmtp no devuelva error al enviarlos.

Uso TidSmtp de las Indy 9 y delphi 7.

El codigo del procedimiento es el siguiente:
Código:

procedure TForm1.Button1Click(Sender: TObject);
var
  mail : TIDMessage;
  smtp : TIdSMTP;
begin
  smtp := TIdSMTP.Create(self);
  // ASIGNO EVENTOS
  smtp.OnWork := mailEvent.OnWork;
  smtp.OnWorkBegin := mailEvent.OnWorkBegin;
  smtp.OnWorkEnd := mailEvent.OnWorkEnd;
  smtp.OnStatus := mailEvent.OnStatus;
  smtp.Name := 'Smtp';
  // CONFIGURACION DEL SERVIDOR AL QUE SE ENVIA EL CORREO
  with smtp do begin
    AuthenticationType := atLogin;
    Host := eHost.Text;
    port := 25;
    Username := eUser.Text;
    Password := ePass.Text;
  end;

  mail := TIdMessage.Create(Self);
  // CONFIGURACION DEL MENSAJE A ENVIAR
  with mail do begin
    From.Address := eFromAddres.Text;
    Recipients.EMailAddresses := eMailAddres.Text;
    Subject := eSubject.Text;
    body.text := eBody.Text;
  end;

  IF ABRIR.Execute then
    if FileExists(abrir.FileName) then
      TIdAttachment.create(mail.MessageParts,abrir.filename);

  try
    // CONEXION CON EL SERVIDOR DE CORREO
    smtp.Connect(10000);
    try
      // ENVIO DEL MENSAJE
      smtp.Send(mail);
    except
      on E: Exception do
        ShowMessage('Fallo al enviar: ' + E.Message);
    end;
  finally
    if SMTP.Connected then SMTP.Disconnect;
    smtp.free;
    mail.free;
  end;
end;

Bueno, a ver si alguien ve una posible razon para todo este entuerto que me esta volviendo loco.

Muchas gracias a todos por perder el tiempo con mi problema.

dec 13-02-2007 15:12:46

Hola,

Deberías comprobar que el problema ocurre siempre, con cualquier Servidor SMTP y con cualquier tipo de archivo. Piensa que un Servidor SMTP en concreto puede limitar el envío de archivos adjuntos y rechazar, sencillamente, cierto tipo de archivos, como ejecutables, por ejemplo. No sé. Primero comprobaría esto. Probaría a enviar distintos tipos de archivo; incluso el tamaño de los archivos acaso influya también.

murci 14-02-2007 12:48:48

El problema ocurre con el archivo que sea(txt,pdf,pas,...), y tambien he probado con distintos servidores smtp, siempre me hace lo mismo. Seguro que es una tonteria, pero no la veo.

ArdiIIa 14-02-2007 13:27:02

Hola Murci:

"
Cita:

TIdAttachment.create(mail.MessageParts,abrir.filename);
"

Creo que te falta introducir algún parámetro mas:

Mira te pongo un ejemplo de como envió uno o varios archivos adjuntos (TIPO IMAGEN) en el cuerpo del mail... Repasa estos parámetros y seguro que encuentras la solución...
Código Delphi [-]
     if findFirst(FTempDir + '*.jpg',faAnyFile ,sr) = 0 THEN
        REPEAT
        OpenfileJPG :=  FTempDir + SR.Name;
        slBody.Add('');
        idAttach := TidAttachment.Create(p, OpenfileJPG);
        idAttach.ContentType := 'image/jpeg';
        idAttach.ContentDisposition := 'inline';
        idAttach.ExtraHeaders.Values['content-id'] := Sr.Name;
        idAttach.DisplayName := Sr.Name;
        until FindNext(sr) <> 0;
        FindClose(sr);


La franja horaria es GMT +2. Ahora son las 07:43:54.

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