Tôi muốn tạo tệp email ở định dạng .eml
với nhiều tệp đính kèm. Tệp đính kèm được tạo và nội dung của tệp đính kèm là chính xác. Nhưng file đính kèm luôn quay ở định dạng .dat
và tên file đi là "ATT00001", "ATT0002" .. vvTên tệp đính kèm và đuôi tệp không hoạt động trong email * .eml
Hiện nay tôi đang theo giải pháp được đưa ra trong this stackoverflow question và mã của tôi là như sau
PHP
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);
}
mẫu đính kèm
--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
là tiêu đề email chính và nội dung như được mô tả trong liên kết ở trên. Tệp .eml
của tôi trông giống như;
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
Trên đây base64
nội dung cho đúng nội dung trong PDF
tập tin khi tập tin mở bằng cách chọn để mở với một PDF Reader
. Nhưng các tệp không có định dạng .pdf
. Điều tương tự cũng xảy ra cho .xls
, .doc
và tất cả các loại tệp khác. Tất cả các tệp đều có định dạng .dat
có đặt tên chuẩn thay vì tên được chỉ định.
Vui lòng giúp tôi giải quyết tệp đính kèm này có trong yêu cầu file type
với tên tệp được chỉ định.
NB: Nội dung base64
trong tệp mẫu .eml
là cắt ngắn