有些问题与电子邮件签名中的图像实现有关?

M S*_*ach 1 java email base64 mime-types

我需要用image实现电子邮件签名.截至目前,我们只支持已经正在工作的电子邮件签名中的文本.我需要提供我可以在邮件签名中插入图像的功能.我可以将电子邮件发送给myapplication中的用户,也可以发送给外部邮件域上的用户,例如gmail,yahoo等.当邮件发送给我的应用程序系统中的某个用户时,系统会输入数据库,当接收者收到收件箱时(内部)从db读取邮件).现在,如果用户在gmail上将邮件发送给外部用户,它就会使用javax mail api.我可以收到来自外部邮件域(gmail,yahoo等)的电子邮件.现在我几乎没有基于tis要求的问题: -

1)对于像gmail这样的外部邮件域如何将签名内的图像发送到另一个域(我的应用程序邮件域),是否有任何标准?与gmail用户相关的另一点可以有两个图像,一个用于签名,另一个用于体内图像.我如何确定哪个图像属于签名?是否有任何明确的财产?

2)还无法确定发送(内部应用程序用户或外部邮件域用户)的最佳/一致方法是什么,包含图像的电子邮件签名,以便在用户收到时正确呈现?

我在脑海中对第2点的看法: - 我之前认为我可以使用如何在jsp中显示图像的解决方案.使用标记<.img src ="/ getImage.action?imageId = 123">的地方,我可以从动作类或servlet中的db获取图像并返回.但请记住,一旦我通过gmail将邮件发送给用户,他将无法访问servlet.因此,这种方法似乎不符合要求. 然后我遇到了另一个伟大的stackoverflow链接 base64编码图像的电子邮件签名,其中蒂姆梅多拉的解决方案看起来很棒,但再次解决方案下面的评论Gmail似乎不支持它再次结束我的伙计真的我认为如果邮件我应该做域名像gmail,雅虎支持建议的解决方案因为在那种情况下我可以发送图像作为base64字符串而不是图像作为附件.

如果你能为我提供关于第1点和第2点的一些指针/方法,那么人们将非常感激

Mic*_*ael 6

要在电子邮件中包含图像,首先必须将图像作为MIME附件包含在电子邮件中.每个附件都必须具有"Content-ID"标头.

--f46d0444ea0d6991ba04b91c92e6
Content-Type: image/gif; name="theImage.gif"
Content-Transfer-Encoding: base64
Content-ID: <theImage@abcd>

[base64 string]
--f46d0444ea0d6991ba04b91c92e6--
Run Code Online (Sandbox Code Playgroud)

2)然后,在电子邮件消息中,src<img>标签的属性中包含Content-ID .

<img src="cid:theImage@abcd" />
Run Code Online (Sandbox Code Playgroud)