1

我正在尝试生成其中插入图像的电子邮件文本。我知道我应该使用语法<img src="cid:image-id" />并将图像添加为附件。我试图这样做,结果如下:

--===============6239034322813840804==
Content-Type: multipart/alternative;
 boundary="===============6051774682785554910=="
MIME-Version: 1.0

--===============6051774682785554910==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

my email in base64 with text only

--===============6051774682785554910==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

my email in base64 with html
...
<img src="cid:my-image.png" alt="My Image">
...

--===============6051774682785554910==--
--===============6239034322813840804==
MIME-Version: 1.0
Content-Type: image/png; name="badge-img.png"
Content-Disposition: inline; filename="badge-img.png"
Content-ID: <badge-img.png>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
...

发送时,图片在附件中(可以打开,有效图片)。但在显示的电子邮件内容中,我只看到替代文本“我的图像”,而不是图像。

知道为什么吗?

4

2 回答 2

0

你用的是什么语言?在 C# 中,你需要尝试这样的事情:

使用 asp.net 发送邮件和嵌入的图像

或者

在 C# 的邮件正文中附加图像

于 2013-03-14T13:29:13.300 回答
0

好的,我想我找到了问题所在。我必须使用多部分/相关内容类型并更改结构。我目前有这样的东西

<email>
    <part1 content-type=multipart/alternative>
        <subpart1>plain text</subpart1>
        <subpart2>html text</subpart2>
    </part1>
    <part2>
        attachments
    </part2>
</email>

应该有类似的东西

<email>
    <part content-type=multipart/alternative>
        <subpart1>plain text</subpart1>
        <subpart2 content-type=multipart/related>
            <subsubpart1>html text</subsubpart1>
            <subsubpart2>attachments</subsubpart2>
        </subpart2>
    </part>
</email>

我仍然需要更改我的代码以适应,但这似乎是问题所在。

于 2013-03-14T14:21:05.390 回答