OSB 电子邮件 - 强制多部分/混合

Posted

技术标签:

【中文标题】OSB 电子邮件 - 强制多部分/混合【英文标题】:OSB email - forcing multipart/mixed 【发布时间】:2014-11-28 16:06:58 【问题描述】:

我正在使用 OSB (11.1.1.6) 服务发送电子邮件。

一些电子邮件客户端不接收附件。

我们已将问题缩小到 MIME 内容类型。

通过 OSB 将 Content-Type 设置为 multipart/related。为了让它工作(我们使用 ncat 测试过),我们需要将 Content-Type 设置为 multipart/mixed

但是我找不到任何方法来强制 OSB 将其设置为 multipart/mixed

此消息在某些客户端上显示附件:

From: <nothing@example.com>
To: nothing@example.com
Message-ID: <xxx>
Subject: Subject 123
MIME-Version: 1.0
Content-Type: multipart/related; boundary="MIME_Boundary";
  start=1389578236803081255-2926c9b7.148d69bfba8.7396
Return-Path: nothing@example.com

--MIME_Boundary
Content-ID: 1389578236803081255-2926c9b7.148d69bfba8.7396
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

<h1>Head</h1>
<p>Paragraph <b>bold</b></p>
--MIME_Boundary
Content-Type: text/plain; name="TEST.txt"
Content-Transfer-Encoding: base64
Content-Description: TEST.txt
Content-Disposition: attachment; filename="TEST.txt"

VGVzdGluZyAxMjM=
--MIME_Boundary--

此消息显示附件:

From: <nothing@example.com>
To: nothing@example.com
Message-ID: <xxx>
Subject: Subject 123
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="MIME_Boundary";
  start=1389578236803081255-2926c9b7.148d69bfba8.7396
Return-Path: nothing@example.com

--MIME_Boundary
Content-ID: 1389578236803081255-2926c9b7.148d69bfba8.7396
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

<h1>Head</h1>
<p>Paragraph <b>bold</b></p>
--MIME_Boundary
Content-Type: text/plain; name="TEST.txt"
Content-Transfer-Encoding: base64
Content-Description: TEST.txt
Content-Disposition: attachment; filename="TEST.txt"

VGVzdGluZyAxMjM=
--MIME_Boundary--

如您所见,唯一的区别是 Content-Type。

那么如何强制 OSB 将 Content-Type 设置为 multipart/mixed

【问题讨论】:

【参考方案1】:

您可以设置传输标头内容类型。我假设您正在使用路由来调用具有电子邮件配置的 BS 服务。从您要路由的代理,在请求操作中,添加通信 > 传输标头。从下拉列表中,选择电子邮件 >> 内容类型。

【讨论】:

这只是设置邮件正文的内容类型,而不是整封邮件。 阅读本文并告诉我是否有帮助:blogs.oracle.com/christomkins/entry/…。我从未遇到过使用 OSB 发送附件和在 MS Exchange、Lotus Notes 上接收附件的问题。您使用的是哪个电子邮件客户端? 那是我启动这个组件时使用的教程。我们可以访问的所有普通电子邮件客户端都可以毫无问题地提取附件。但是,我们确实有一种产品可以将电子邮件转换为传真。该产品无法通过Content-Type: multipart/related 获取附件,但可以正常使用Content-Type: multipart/mixed。发送带有附件的邮件的正确方法是使用Content-Type: multipart/mixed,但直到今天我还没有找到强制 OSB 进入它的方法。【参考方案2】:

在与 Oracle 支持人员进行了一些沟通后,我们被指示应用补丁 12585136。

这是为 OSB 11.1.1.7 (link) 修复的错误之一

12585136 - 电子邮件传输生成多部分/相关的电子邮件,而不是多部分/混合的电子邮件

在我们应用并测试补丁后,我将更新此答案并提供更多反馈。

【讨论】:

以上是关于OSB 电子邮件 - 强制多部分/混合的主要内容,如果未能解决你的问题,请参考以下文章

PHP pdf 电子邮件附件,内容类型:多部分/混合,html 消息未显示

在 iOS 上为亚马逊 SES 创建多部分/混合 MIME

如何编写多部分 MIME 混合消息以在 Outlook 中正确显示

MIME 类型多部分/混合的无对象 DCH

如何使用 system.net.mail 发送非替代的多个部分

Python:多部分 html 电子邮件通过嵌入式图像和附件发送