Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Adjuntos en un correo (https://www.clubdelphi.com/foros/showthread.php?t=95253)

Angel.Matilla 22-06-2021 10:54:28

Adjuntos en un correo
 
Buenos días a todos. Tengo un problema con el envío de correos desde una aplicación hecha en BCB 6 con la inclusión de adjuntos. Estoy usando este código para montar el mensaje:
Código:

fMenu->MenCor->MessageParts->Clear();
fMenu->MenCor->Recipients->Clear();
fMenu->MenCor->CCList->Clear();
fMenu->MenCor->BccList->Clear();
fMenu->MenCor->ClearBody();
fMenu->MenCor->Subject = fDatCor->Asunto->Text;

fMenu->MenCor->Body->Text = fDatCor->Texto->Text;

if (fDatCor->Firma->Lines->Count > 0)
    fMenu->MenCor->Body->Text = fMenu->MenCor->Body->Text + "\n-----" + fDatCor->Firma->Text;

if (fDatCor->Adjuntos->Items->Count > 0)
    for (nItem = 0; nItem < fDatCor->Adjuntos->Items->Count; nItem ++)
          if (FileExists(fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]))
              TIdAttachment *Adjunto = new TIdAttachmentFile(fMenu->MenCor->MessageParts, fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]);

Todo el mensaje se monta bien pero si el usuario quiere enviar más de un adjunto, el mensaje llega sólo con el texto sin ningún adjunto; sin embargo si selecciona un único adjunto entonces si se envía bien. ¿Podéis guiarme un poco? Porque no sé que estoy haciendo mal

Angel.Matilla 23-06-2021 11:11:28

Después de dare muchas vueltas, encontré la solución. Dejo aquí el código por si a alguien le viene bien.
Código:

TIdAttachment *Adjunto;  // Añdo esta línea

fMenu->MenCor->MessageParts->Clear();
fMenu->MenCor->Recipients->Clear();
fMenu->MenCor->CCList->Clear();
fMenu->MenCor->BccList->Clear();
fMenu->MenCor->ClearBody();
fMenu->MenCor->Subject = fDatCor->Asunto->Text;

fMenu->MenCor->Body->Text = fDatCor->Texto->Text;

if (fDatCor->Firma->Lines->Count > 0)
    fMenu->MenCor->Body->Text = fMenu->MenCor->Body->Text + "\n-----" + fDatCor->Firma->Text;

if (fDatCor->Adjuntos->Items->Count > 0)
    for (nItem = 0; nItem < fDatCor->Adjuntos->Items->Count; nItem ++)
          if (FileExists(fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]))
          {
              Adjunto = new TIdAttachmentFile(fMenu->MenCor->MessageParts, fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]);
              Adjunto->ContentDisposition                = "attachment";
              Adjunto->ExtraHeaders->Values["content-id"] = (ExtractFileName(fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]));
              Adjunto->Name                              = ExtractFileName(fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]);
              Adjunto->DisplayName                        = ExtractFileName(fDatCor->Adjuntos->Items->Item[nItem]->SubItems->Strings[0]);
          }


ecfisa 23-06-2021 20:38:51

Hola.

Gracias por compartir la solución. ^\||/

Saludos :)

Angel.Matilla 25-01-2022 19:32:28

Pues sigo con problemas que no acierto a resolver. Usando el código de mi mensaje anterior, si envío un correo con un adjunto PDF me envía, por ejemplo, esto:
Cita:

This is a multi-part message in MIME format

--rYh6f1=_XKRtLMU4qkBuU8sPDna7cvXKRE
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Con adjuntos

-----

Atentamente,

--rYh6f1=_XKRtLMU4qkBuU8sPDna7cvXKRE
Content-Type: application/pdf;
name="web-ordenanza-ivtm.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="web-ordenanza-ivtm.pdf"
content-id: web-ordenanza-ivtm.pdf

JVBERi0xLjYKJeLjz9MKMSAwIG9iago8PC9CYXNlRm9udC9IZWx2ZXRpY2EvVHlwZS9Gb250L0Vu
Y29kaW5nL1dpbkFuc2lFbmNvZGluZy9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjIgMCBvYmoKPDwv
QmFzZUZvbnQvSGVsdmV0aWNhLUJvbGQvVHlwZS9Gb250L0VuY29kaW5nL1dpbkFuc2lFbmNvZGlu
etc.
¿Dónde puede estar el problema?


La franja horaria es GMT +2. Ahora son las 15:00:58.

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