Ich möchte E-Mail-Dateien in .eml
Format mit mehreren Anlagen erstellen. Die Anlagen werden generiert und der Inhalt der Anlagen sind korrekt. Aber die Anlagen immer kommen in .dat
Format und die Dateinamen gehen als „ATT00001“, „ATT0002“ .. etcAnhang Name und Dateierweiterung funktioniert nicht in E-Mail * .eml
Derzeit verfolge ich die Lösung gegeben in this stackoverflow question und mein Code als
PHP folgt
foreach($reports as $pdf){
$attachment = file_get_contents("auto_report_attachments\\Template_Attachment.eml");
$attachment = str_replace("TEMPLATE_MIME_TYPE", $pdf['type'], $attachment);
$attachment = str_replace("TEMPLATE_FILE_NAME", $pdf['filename'], $attachment);
$attachment = str_replace("TEMPLATE_ATTACHMENT_CONTENT", base64_encode($pdf['file']), $attachment);
$content .= $attachment;
unset($attachment);
}
Vorlage Befestigung
--080107000800000609090108
Content-Type: "TEMPLATE_MIME_TYPE"
name="TEMPLATE_FILE_NAME"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="TEMPLATE_FILE_NAME"
TEMPLATE_ATTACHMENT_CONTENT
$content
ist der Haupt-E-Mail-Header und Hauptteil wie im obigen Link beschrieben. Meine .eml
Datei sieht wie aus;
MIME-Version: 1.0
Date: Tue, 16 Apr 2013 09:03:37 +0100
From: [email protected]
To: [email protected]
Subject: Email subject
Content-Type: multipart/mixed; boundary="080107000800000609090108"
This is a message with multiple parts in MIME format.
--080107000800000609090108
Content-Type: text/html
<p><strong>Project Name: Some Project and the body continues...</p>
--080107000800000609090108
Content-Type: "application/pdf"
name="AM22831 - - Cover Sheet.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="AM22831 - - Cover Sheet.pdf"
JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovQ29udGVudHMgNCAwICiUlRU9GCg==
--080107000800000609090108
Content-Type: "application/pdf"
name="AM22831 - - Manufacturing Status.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="AM22831 - - Manufacturing Status.pdf"
cSAxMTMuMzkgMCAwIDMwLjUzIDE0LjE3IDU1MC41OCBjbSAvSTEgRG8gUQpxIDAuMDAwIDAuMDAwIDEuMDAwIHJnIEJUIDEzMC4zOSRU9GCg==
--080107000800000609090108
Der oben base64
Inhalt gibt die richtigen Inhalte in der PDF
Datei, wenn die Datei mit einem PDF Reader
zu öffnen, indem Sie geöffnet. Aber die Dateien kommen nicht in .pdf
Format. Gleiches passiert für .xls
, .doc
und alle anderen Dateitypen. Alle Dateien werden im Format .dat
mit Standardnamen anstelle der angegebenen Namen angezeigt.
Bitte helfen Sie mir, diese Anhänge zu lösen kommen in der erforderlichen file type
mit angegebenen Dateinamen.
NB: Der base64
Gehalt in der Probe .eml
Datei abgeschnitten