PHP邮件multipart / mixed cut off Outlook 2010

时间:2015-07-19 15:04:30

标签: php email outlook

我正在开发一个使用PHP的邮件系统。我非常接近完成,因为除了Outlook(我目前正在Outlook 2010中测试,在Windows 7上),它一切正常。

电子邮件是Traceback (most recent call last): File "D:/learn/suojin.py", line 5, in <module> from flask import Flask File "C:\Python27\lib\site-packages\flask-0.10.1-py2.7.egg\flask\__init__.py", line 17, in <module> from werkzeug.exceptions import abort File "C:\Python27\lib\site-packages\werkzeug\__init__.py", line 154, in <module> __import__('werkzeug.exceptions') File "C:\Python27\lib\site-packages\werkzeug\exceptions.py", line 71, in <module> from werkzeug.wrappers import Response File "C:\Python27\lib\site-packages\werkzeug\wrappers.py", line 26, in <module> from werkzeug.http import HTTP_STATUS_CODES, \ File "C:\Python27\lib\site-packages\werkzeug\http.py", line 24, in <module> from email.Utils import parsedate_tz ImportError: No module named Utils ;它包含一组multipart/mixed个HTML和纯文本替代品以及可选的附件。这一切都被正确发送,如果我检查Gmail中的原始标题,它看起来应该看起来。但是,如果我在Outlook上检查原始标题,它会在multipart/alternative - 声明之后切断任何内容。我在这里包含了标题。我简化了它们;剥离实际的纯文本,html,emailaddresses,并简化边界。 Gmail向我展示的标题看起来有点像这样:

multipart/mixed

Outlook向我展示的标题,看起来有点像这样:

(... information about receiving by the server ...)
To: "Hidden recipients" <noreply@domain.com>
Subject: Een BCC
From: "My Name"<my@email.com>
Reply-To: my@email.com
Date: Sun, 19 Jul 2015 14:16:31 +0000
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="PHP-mixed"

This is a message with multiple parts in MIME format.
--PHP-mixed
Content-Type: multipart/alternative; boundary="PHP-alt"
--PHP-alt
Content-type:text/plain;charset=utf-8
Content-Transfer-Encoding: quoted-printable
... here's the plain text alternative
--PHP-alt
Content-type: text/html;charset=utf-8
Content-Transfer-Encoding: quoted-printable
... here's the html-formatted text
--PHP-alt--
--PHP-mixed--

我的问题是,这是怎么发生的,我该如何解决这个问题呢?为什么Gmail会很好地播放,而Outlook则不然?

2 个答案:

答案 0 :(得分:1)

Outlook会显示它应显示的内容:MIME 标题。它不显示整个MIME消息。邮件本身是否由Outlook正确显示?

答案 1 :(得分:0)

为了提及遇到类似我的问题的人,我发布了这个答案。由于许多其他SO问题与通过PHP状态发送邮件有关,因此建议使用其他库。存在许多库,您可以在这些库之间进行选择。

正如Mario在此问题的评论中所述,建议使用库发送更高级的电子邮件!对我来说,编写正确的标题是一件非常痛苦的事情,这些库很容易使用,并且你可能最终会得到比构建自己的“邮件库”更好的结果。

  • SwiftMailer
  • PHPMailer(我为我的申请选择了这个)
  • 可能还有其他人......只需向Google查询您的需求。

我觉得PHPMailer易于实现;只是将代码复制到我的目录工作!我不确定SwiftMailer,但我猜它的工作原理类似。

底线:不要固执,使用库! :-)