我们想发送一封附有“多个内容”的电子邮件。情景是,如果使用Blackberry读取电子邮件,我们希望显示一个内容,如果在桌面电子邮件客户端中读取电子邮件,则显示其他内容。 (黑莓内容只是文本,其他设备应该读取HTML内容)
我要做一些研究,但我想知道是否有人能告诉我这是否听起来不可能。
泥泞的插图
邮件
content 1 = text / plain device = blackberry
内容2 = text / html device =其他所有内容
我们正在使用Java / Spring,而不是与这里的一般问题相关的那些。
非常感谢。
答案 0 :(得分:1)
您可以通过某种方式使用以下代码或其他
File f = new File("e:\\mailFolder");
File[] attachments = f.listFiles();
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
for( int i = 0; i < attachments.length; i++ ) {
messageBodyPart = new MimeBodyPart();
FileDataSource fileDataSource =new FileDataSource(attachments[i]);
messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
messageBodyPart.setFileName(attachments[i].getName());
multipart.addBodyPart(messageBodyPart);
}
答案 1 :(得分:0)
您可以使用多部分消息中的multipart/alternative子类型来执行此操作。
您不能够决定哪个部分由哪个邮件客户端打开,但是由客户决定。
就实施情况而言,请查看MimeMultipart以帮助您入门。据我所知,Spring电子邮件集成不直接支持multipart/alternative
消息。
答案 2 :(得分:0)
您需要在电子邮件中包含multipart / alternative标记。在我的Blackberry软件版本中(这会有所不同),它会尝试在html版本中打开带有菜单选项的电子邮件,以获取纯文本版本。
通常情况下,复杂的HTML电子邮件是一种很好的做法,对许多电子邮件客户端都有帮助,但是您无法获得所需的精细控制。