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

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

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

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

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

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

要在电子邮件中包含图像,首先必须将图像作为MIME附件包含在电子邮件中。 这些附件中的每一个都必须具有“Content-ID”标头。

--f46d0444ea0d6991ba04b91c92e6 Content-Type: image/gif; name="theImage.gif" Content-Transfer-Encoding: base64 Content-ID:  [base64 string] --f46d0444ea0d6991ba04b91c92e6-- 

2)然后,在电子邮件消息中,将Content-ID包含在标记的src属性中。

  

为了让Gmail能够看到字节数组中的嵌入图像,我在另一个类似的问题上发布了一个答案,即使用ByteArrayDataSource并将其嵌入到HtmlEmail中。 这是代码片段:

 import javax.mail.util.ByteArrayDataSource; import org.apache.commons.mail.ImageHtmlEmail; ... ImageHtmlEmail email = new ImageHtmlEmail(); byte[] qrImageBytes = createQRCode(); // get your image byte array ByteArrayDataSource qrImageDataSource = new ByteArrayDataSource(qrImageBytes, "image/png"); String contentId = email.embed(qrImageDataSource, "QR Image");