2013-04-16 11 views
7

ben. Çoklu ekleri ile .eml biçiminde e-posta dosyaları oluşturmak istiyorum ekleri oluşturulur ve eklerin içeriği doğrudur. Ama .. ekleri daima .dat formatında gelip dosya isimleri "ATT00001", "ATT0002" gibi gidip vbEklenti adı ve e-posta çalışmıyor dosya uzantısı * .eml

Şu anda çözümü this stackoverflow question verilen ve benim kod

PHP şöyledir takip ediyorum

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); 
    } 

Şablon Eklenti

--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 yukarıdaki bağlantıda açıklanan şekilde ana e-posta başlığı ve organıdır. Benim .eml dosyamda;

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 

yukarıdaki base64 içerik

dosyası PDF Reader ile açmayı seçerek açılan PDF dosyasında doğru içeriği verir. Ancak dosyalar .pdf biçiminde gelmiyor. Aynı .xls, .doc ve diğer tüm dosya türleri için gerçekleşir. Tüm dosyalar standart adlandırma yerine belirtilen adlarla .dat biçiminde sunulur.

beni bu ekleri belirtilen dosya adıyla gerekli file type gelip çözmeye yardımcı olun.

NB: Ben cevabı kendime buldum

cevap

5

örnek .eml dosyada base64 içeriği kesildi .. !! 080107000800000609090108 bu durumda sınır ve tüm ekleri sonunda, e-posta bitirmek için başka 080107000800000609090108 olmalıdır

--080107000800000609090108 
Content-Type: TEMPLATE_MIME_TYPE;name="TEMPLATE_FILE_NAME" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment;filename="TEMPLATE_FILE_NAME" 

TEMPLATE_ATTACHMENT_CONTENT 

şöyle Template_Attachment başlık olmalıdır. Bu birgün

PS :-) birine yararlı olacaktır

Umut: bu yüzden yapmalıyım olarak mükemmel işler hangi şöyle gibi görünecektir gerçek .eml dosya

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" 

JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovQ29udGVasdsDFDffjMBakdjKJHBzdHlsZT0iY29= 

--080107000800000609090108 
Content-Type: application/excel;name="AM22831 Manufacturing Status.xls" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment;filename="AM22831 Manufacturing Status.xls" 

DQoNCjx0YWJsZSBib3JkZXI9IjAiPg0KPHRyPg0KPHRkIGNvbHNwYW49IjMiIHJvd3NwYW49IjIiIGFsaWduPSJjZW50ZXIiPg0KICAgIDxoMSBzdHlsZT0iY29=