1

我们正在使用一个服务台应用程序,该应用程序使用 Exhange Web 服务 (EWS) 发送电子邮件。但是当发送带有图像(通常是屏幕截图)的电子邮件时,图像没有显示。在 Outlook 中右键单击选择视图源时,我们可以像这样设置损坏的图像 har 编码:

<img width=100 height=100 id="1" src="cid:&lt;helge.jpg&gt;">.

该图像在 Gmail、Outlook.com 等网络邮件客户端上也损坏了。

有趣的是,从 Servicedesk 应用程序向同一 Exchange 服务器的用户发送图像时,图像显示正确。

我们的程序员查看了 EWS 的文档:

https://msdn.microsoft.com/en-us/library/office/hh532564%28v=exchg.80%29.aspx?f=255&MSPPError=-2147217396

ServiceDesk 应用程序的程序员提供了他们用于 EWS 的代码:

fileAttachment.ContentId = string.Concat("<", str, ">");

因此,基于 Microsoft 的示例,他们在 id 周围添加了 < 和 >,但 Microsoft 的示例没有。

我们的程序员使用:

email.Attachments[0].ContentId = "WithoutAnglebrackets.jpg";
email.Attachments[1].ContentId = "<WithAnglebrackets.jpg>";

这导致第一个附件显示在电子邮件中,而不是另一个。

服务台程序员指的是https://www.rfc-editor.org/rfc/rfc2392,允许使用尖括号。

他们还告诉我们,该应用程序正在他们的 Exchange 2010 上运行。(我们正在使用 Exchange 2013)。

那么这是交换问题吗?还是程序员错误地添加了尖括号?

4

2 回答 2

0

您的服务台程序员所引用的链接甚至不包含“交换”一词,那么他们究竟为什么要使用此文档作为来源呢?

尖括号将文件名更改为不存在的文件名,从而使您在电子邮件中损坏的图像。

我想知道,使用尖括号到底有什么好处。最好不要使用它们来指定文件名。

于 2017-01-16T08:49:19.133 回答
0

问题出在您使用的 html 上:

<img width=100 height=100 id="1" src="cid:&lt;helge.jpg&gt;">.

这里的内容 id 名称应该不带括号,例如:

<img width=100 height=100 id="1" src="cid:helge.jpg">.

只有在电子邮件附件中,它才应该在内容 ID 名称中包含尖括号。例如,这是我们生成的电子邮件的附件部分:

------=_Part_1_374681454.1595913735778
Content-Type: image/png; name=attachment.png
Content-Transfer-Encoding: base64
Content-ID: <attachment.png>
Content-Disposition: attachment; filename=attachment.png

iVBORw0KGgoAAAANSUhEUgAABoUAAAMACAYAAADi+m6JAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
...
于 2020-07-28T05:41:30.797 回答