Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Problema al enviar Email con adjuntos usando el componente Idsmtp de las indy (https://www.clubdelphi.com/foros/showthread.php?t=16204)

Nbull 19-11-2004 13:59:43

Problema al enviar Email con adjuntos usando el componente Idsmtp de las indy
 
Hola A tod@s, Tengo un problemilla con mi programa, este modulo envia e-mail con el IdMessage y el IdSmtp de las indy los envio sin ningún problema pero cuando le paso la ruta de varios archivos a traves de un Memo no me envia ningun adjunto.El codigo que tengo es este:
Código Delphi [-]
 // Adjuntos. Se pueden indicar varios ( TStringList ) ...
      if ( trim( txtAdjunto.Text ) <> '') then begin
         if(MemoAdjunto.Visible=true) then
         begin
              TIdAttachment.Create(Mensaje.MessageParts,MemoAdjunto.Lines.text );
              Memo.lines.Add( 'Archivos Adjuntos :');
              Memo.lines.AddStrings( MemoAdjunto.Lines  );
         end
         else
         begin
              TIdAttachment.Create(Mensaje.MessageParts,txtAdjunto.Text );
              Memo.lines.add( 'Archivo Adjunto : ' + trim( txtAdjunto.text ) );
         end;
      end;

A ver si alguien me puede echar una mano por que el jefe me esta metiendo presión con este módulo, y con el del memo del access que he puesto en un hilo del foro SQL.Gracias por vuestra generosidad y colaboración.;)

TDworD 19-11-2004 17:18:19

Veamos si puedo servirte de ayuda, me atrevería a afirmar que debes crear un objeto TIdAttachment para cada adjunto del mensaje, es decir, tu código corregido sería:

Código:

// Adjuntos. Se pueden indicar varios ( TStringList ) ...
      if ( trim( txtAdjunto.Text ) <> '') then begin
        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
        else
        begin
              TIdAttachment.Create(Mensaje.MessageParts,txtAdjunto.Text );
              Memo.lines.add( 'Archivo Adjunto : ' + trim( txtAdjunto.text ) );
        end;
      end;

Creo que con esto sería suficiente. Aparte de esto, un tema que no se de las Indy pues he empezado a usarlas hace poco, es si el objeto TIdAttachment lo has de destuir tu o se destruye cuando se manda el mensaje o se destruye al terminar la aplicación. Si lo has de destruir tu, deberías guardar en alguna variable la lista de adjuntos.

Un saludo.

TDworD

Nbull 22-11-2004 09:23:38

Muchisimas gracias TdWord, ya he solucionado el problema,la verdad es que no habiacaido en hacer un bucle, no se que me pasa a veces pero tengo la ideas muy espesas.Lo dicho muchas gracias.:D


La franja horaria es GMT +2. Ahora son las 22:38:31.

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