Microsoft Exchange 不会将 PHPmailer 生成的电子邮件呈现为 HTML

2024-01-19

这个问题已经困扰我好几个星期了。我有一个脚本,可以在 PHPmailer 的帮助下将带有 xls 附件的 html 电子邮件发送给多个收件人。它已经运行良好一年多了。最近,来自同一家公司的两个使用 Microsoft Exchange 作为电子邮件客户端的收件人收到了这封文本电子邮件。以下是他们收到的电子邮件示例:

--b1_dbc2cccc876da210fd56ae7a2601e692
Content-Type: multipart/alternative;
        boundary="b2_dbc2cccc876da210fd56ae7a2601e692"

--b2_dbc2cccc876da210fd56ae7a2601e692
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

To view the message, please use an HTML compatible email viewer!


--b2_dbc2cccc876da210fd56ae7a2601e692
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

....................................
the email body html code in this block
....................................


--b2_dbc2cccc876da210fd56ae7a2601e692--

--b1_dbc2cccc876da210fd56ae7a2601e692
Content-Type: application/octet-stream; name="3MShop-NewOrders_07-30AM-05052014.xls"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="3MShop-NewOrders_07-30AM-05052014.xls"

PGgyPjNNU2hvcC1OZXdPcmRlcnMgMDUtMDUtMjAxNCAwNzozMDoxMCBBTSA8L2gyPjxociAvPjx0
YWJsZSBib3JkZXI9MSBjZWxscGFkZGluZz01IGNlbGxzcGFjaW5nPTI+PHRyPjx0ZCBhbGln

MDUgLSBOYXZ5IEJsdWU8L3RkPjx0ZCBhbGlnbj1sZWZ0PjE8L3RkPjwvdHI+PC90YWJsZT4=

....................................
the rest codes of this attachment
....................................

--b1_dbc2cccc876da210fd56ae7a2601e692--

以下是其他收件人收到的电子邮件标头示例

Content-Type: multipart/mixed;
    boundary="b1_dbc2cccc876da210fd56ae7a2601e692"
Sender:  <[email protected] /cdn-cgi/l/email-protection>
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - cp60.ezyreg.com
X-AntiAbuse: Original Domain - emoceanstudios.com.au
X-AntiAbuse: Originator/Caller UID/GID - [616 500] / [47 12]
X-AntiAbuse: Sender Address Domain - emoceanstudios.com.au
X-Get-Message-Sender-Via: cp60.ezyreg.com: authenticated_id: emocean/from_h
X-Source: 
X-Source-Args: /usr/sbin/proxyexec -q -d -s /var/run/proxyexec/cagefs.sock/socket /bin/cagefs.server 
X-Source-Dir: emoceanstudios.com.au:/public_html/3M-Shop-Scripts

--b1_dbc2cccc876da210fd56ae7a2601e692
Content-Type: multipart/alternative;
    boundary="b2_dbc2cccc876da210fd56ae7a2601e692"

--b2_dbc2cccc876da210fd56ae7a2601e692
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

To view the message, please use an HTML compatible email viewer!


--b2_dbc2cccc876da210fd56ae7a2601e692
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

正如您可以轻松看到的区别是有问题的部分没有

Content-Type: multipart/mixed;

更奇怪的是,虽然他们的 Microsoft Exchange 无法将从 PHPmailer 发送的这封电子邮件呈现为 HTML,但如果我将同一封电子邮件从我的 gmail 转发到他们的 Exchange,他们现在可以正确呈现它。这让我觉得这可能是我的 php 脚本问题。脚本在这里:

$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';


$mail->AddAddress('[email protected] /cdn-cgi/l/email-protection', 'example name');
$mail->SetFrom('[email protected] /cdn-cgi/l/email-protection', 'example name');

$mail->ContentType = 'text/html';
$mail->IsHTML(true);  

$mail->Subject = 'example subject';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; 

$mail->MsgHTML(file_get_contents('contents.html'));
$mail->AddAttachment($newOrdersReport);      // attachment

$mail->Send();

我不是电子邮件专家,但这对我来说看起来不合适:

--b1_dbc2cccc876da210fd56ae7a2601e692
Content-Type: multipart/alternative;
boundary="b2_dbc2cccc876da210fd56ae7a2601e692"

您已经将 Content-Type 声明为 multipart 并定义了边界,为什么会重复?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft Exchange 不会将 PHPmailer 生成的电子邮件呈现为 HTML 的相关文章

随机推荐

  • 简单正则表达式的困难(匹配前缀/后缀)

    我正在尝试开发一个将在 C 程序中使用的正则表达式 我最初的正则表达式是 lt w 它成功匹配 foo 匹配但从输出中排除左括号和右括号 以生成简单的 foo 但是 如果我将正则表达式修改为 lt w 我尝试与 foo 匹配 但它无法匹配
  • 具有 malloc 和 free 的共享指针

    我在包含 c 和 cpp 的大型应用程序中工作 所有文件都保存为 cpp 扩展名 但代码是用 c 风格编写的 我的意思是它是定义结构而不是类通过 malloc 和 realloc 和 calloc 分配内存 最近他们安装了 boost 库所
  • 为什么这个 Lucene 查询是“contains”而不是“startsWith”?

    string q m Query query new QueryParser company new StandardAnalyzer Parse q 将导致查询成为 prefixQuery company a 尽管如此 我仍然会得到像 非
  • 如何向带有边框的 JPanel 添加填充

    我想添加填充到一些JPanels 我找到了这个答案 https stackoverflow com a 5328475 1590323 https stackoverflow com a 5328475 1590323 它对于没有边框的面板
  • Android 浏览器下载管理器

    我可以使用 Android 内置浏览器下载管理器来下载应用程序中的文件吗 对于音频文件 使用数据类型为 audio 的 Intent ACTION VIEW 打开远程文件 url 会导致浏览器开始播放 但我想强制下载指定文件 下载管理器不是
  • 区别:android:background 和 android:src? [复制]

    这个问题在这里已经有答案了 可能的重复 ImageView的src和background有什么区别 https stackoverflow com questions 5454491 what is the difference betwe
  • 如何在多部分http post请求中发布图像数组

    我想上传一组图像 我应该如何附加array to NSMutableData 这是我的代码 func createBodyWithParametersMulti parameters String String filePathKey St
  • 如何在WebSphere 8.5上安装Jenkins

    我正在尝试安装 jenkins 1 627 如上所述wiki https wiki jenkins ci org display JENKINS IBM WebSphere 虽然我收到了这个错误 无法加载 web 应用程序 SRVE8111
  • 我们需要用 c++11 重新编译库吗?

    这是一个非常无知的问题 但是 我想开始使用 C 11 我可以继续使用使用旧的 gcc 4 2 1 编译器编译的大量库 还是需要使用新编译器重新编译它们 我认为 或希望 答案是否定的 但我只是一个涉足者 这样我至少可以消除部分无知 你能解释一
  • Url 编码 # (%23) 导致 ASP.NET 应用程序中出现 404

    我有一个深层链接的 Silverlight RIA 试图使用 Twitter OAuth 回调 RIA 中回调 页面 的 URL 为 http example com RiaTestPage aspx callback 只要 符号经过 UR
  • IE9是否支持console.log,它是一个真正的功能吗?

    在什么情况下是window console log在 Internet Explorer 9 中定义 即使当window console log被定义为 window console log apply and window console
  • 在 Angular JS (1.x) 中验证分页表单

    我有一个使用带输入字段的表格的角度形式 用户可以添加和删除行 每个单元格的输入类型可以是文本 数字 日期等 如果表格太大 表格就会变慢 解决此问题的一种方法是对表进行分页 不幸的是 对表格进行分页是一个问题 因为我对输入字段进行了自定义验证
  • lfe 包裹去了哪里?我怎样才能找到类似的信息?

    我正在寻找这个的更新版本 https cran r project org web packages lfe index html https cran r project org web packages lfe index html包裹
  • 链接器命令失败,sdl

    我正在尝试编译我的第一个 SDL 程序 但它无法编译 顺便说一句 我猜这不应该是关于设置库 因为我认为我正确安装了库 这是我的命令 g main cpp o main I Library Frameworks SDL2 framework
  • 如何使用 gganimate 动画让 x 轴跨度移动?

    使用 R 我尝试使用 gganimate 制作一个基于 x 轴从左到右显示的折线图 我已经设法做到了这一点 但我还想做的是使scale x continuous limits c i 5 i 5 即在正在显示的点和窗口周围有一个窗口将继续前
  • 成员访问不完整类型“QScrollBar”[重复]

    这个问题在这里已经有答案了 QScrollArea scrollArea new QScrollArea this scrollArea gt verticalScrollBar gt width 我试图获取 QScrollArea 的 V
  • 如何在 OncreateView 中运行异步功能?

    我的应用程序有问题 首先 我使用以下命令制作了两个选项卡碎片这会膨胀一个activity 实现的选项卡工作正常 其次我已经展示了XAML right 但是 我现在需要异步运行一些东西 Fragment 中的 OnCreateView 我怎样
  • 万物皆对象是如何运作的?

    我了解背后的主要理论一切都是对象但我真的不明白它是如何在幕后实现的 功能 So foo 4 是相同的foo call 4 但是什么阻止了我做foo call call 4 foo是一个函数并且foo call 都是围绕函数的方法包装器 但是
  • 复制带有下一个和随机指针的链表,仅赋予链表读取权限

    我需要复制带有下一个和随机指针的链表 下 一个指针照常指向链表中的下一个元素 随机指针可能指向任何其他节点 甚至指向其自身 如果我不允许在任何时候修改给定的列表 而只给出列表的读取权限 该怎么办 优雅的解决方案 线性时间 恒定空间 创建节点
  • Microsoft Exchange 不会将 PHPmailer 生成的电子邮件呈现为 HTML

    这个问题已经困扰我好几个星期了 我有一个脚本 可以在 PHPmailer 的帮助下将带有 xls 附件的 html 电子邮件发送给多个收件人 它已经运行良好一年多了 最近 来自同一家公司的两个使用 Microsoft Exchange 作为