我试图从PHP生成EML文件。是否有任何图书馆可以让我轻松创建它们?我可以在互联网上找到一些ActiveX组件,但宁可使用更便携的东西。PHP库来生成EML电子邮件文件?
回答
我结束了使用这种模板,其中,每个字段由TEMPLATE_<name>
变量替换构建MIME消息自己:
From: TEMPLATE_FROM_ADDRESS
MIME-Version: 1.0
To: TEMPLATE_TO_ADDRESS
Subject: TEMPLATE_SUBJECT
Content-Type: multipart/mixed; boundary="080107000800000609090108"
This is a message with multiple parts in MIME format.
--080107000800000609090108
Content-Type: text/plain
TEMPLATE_BODY
--080107000800000609090108
Content-Type: application/octet-stream;name="TEMPLATE_ATTACH_FILENAME"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;filename="TEMPLATE_ATTACH_FILENAME"
TEMPLATE_ATTACH_CONTENT
--080107000800000609090108
然后创建最终的消息是很简单使用str_replace
:
$content = file_get_contents("Template.eml");
$content = str_replace("TEMPLATE_FROM_ADDRESS", $fromEmail, $content);
$content = str_replace("TEMPLATE_TO_ADDRESS", $toEmail, $content);
// etc. for each template parameter
// Also don't forget to base64_encode the attachment content;
$content = str_replace("TEMPLATE_ATTACH_CONTENT", base64_encode($attachContent), $content);
关于这个职位的文件附件附加信息:Attachment name and file extension not working in email *.eml
我认为你不需要一个库。这只是纯文本(例如http://bitdaddys.com/example1.eml)
Date: Sat, 12 Aug 2006 14:25:25 -0400
From: John Doe <[email protected]>
Subject: BitDaddys Software
To: [email protected]
Dear BitDaddys Corp.,
We have added your software to our approved list.
Thank you for your efforts.
Sincerely,
John Doe
Some Server Company
你可以用头只输出文本,并保存它使用的fwrite。对于附件使用base64_encode()
作为陈述here
重要的是它应该遵循SMTP语义 - 即每个头部末尾的CRLF和头部和主体之间的空行(由CRLF终止)。身体应该被传输编码为7bit ascii(或引用可打印)。 – symcbean 2012-01-08 13:02:17
使用空白$ part_number的imap_savebody(imap库的一部分http://us1.php.net/manual/en/function.imap-savebody.php)。它用一行代码和整个消息创建一个美丽的.eml文件(null $ part_number =所有部分...没有记录但可行)。
另外两个解决方案取决于电子邮件的格式(第一个解决方案中只有一个附件,没有html部分,第二个解决方案只有文本电子邮件)。
imap_savebody创建一个完美的.eml文件,不管输入电子邮件的格式如何(只要它是RFC投诉)。
'section number'表示'$ part_number'参数 – redexp 2017-01-30 15:10:38
- 1. 正确的PHP方式来解析EML格式的电子邮件附件
- 2. 生成HTML电子邮件正文
- 3. PHP电子邮件生成文件错误
- 4. 将eml文件导入ms-exchange电子邮件服务器
- 5. Python:修改eml文件中的值(电子邮件标题)
- 6. `eml`文件和RFC822电子邮件有什么区别?
- 7. .eml文件常见电子邮件保存格式
- 8. 电子邮件TCPDF生成的PDF文件与PHP邮件功能
- 9. 生成电子邮件验证链接
- 10. Zend Framework电子邮件内容生成
- 11. 生成测试电子邮件ID
- 12. 生成的电子邮件,不发送
- 13. PHP电子邮件附件
- 14. 由Java WebLogic Application Server生成的电子邮件日志文件
- 15. 当文件生成时自动发送电子邮件
- 16. php新手:电子邮件库
- 17. 电子邮件发送至笨电子邮件库中的iCloud电子邮件帐户不来
- 18. 我怎样才能提取电子邮件地址从一个Excel文件从eml文件使用php
- 19. 支持所有邮件服务的HTML电子邮件生成
- 20. ColdFusion邮件:自动生成的电子邮件?
- 21. 所有AppEngine生成的电子邮件都会生成垃圾邮件
- 22. PHP电子邮件垃圾邮件
- 23. PHP邮件不发送电子邮件
- 24. 用PHP邮件发送电子邮件()
- 25. 来自网站的电子邮件不生成html?
- 26. 如何使用php curl发送来自yahoo电子邮件的电子邮件
- 27. 电子邮件生产
- 28. 如何读取从.eml文件的多个电子邮件使用JavaMail
- 29. 如何通过API将MSG/EML电子邮件文件导入到Outlook中?
- 30. 用Java生成电子邮件的干净技术或库
你想从头开始创建它,还是在用imap函数阅读电子邮件之后创建它?也许imap_savebody()可以帮助 - http://www.csschat.com/archive/index.php/t-3287.html? – BartekR 2012-01-08 09:34:47
是的,我需要从头开始创建它。我基本上有一个电子邮件,标题,正文和附件,并需要为此创建EML。 – 2012-01-08 09:41:21