我想生成电子邮件“草稿”服务器端并在用户的电子邮件客户端中打开。
用例是:生成一个“完整”的电子邮件,其中包含收件人,主题和正文(text / html),然后将在用户的电子邮件客户端(Outlook 365和iOS上的邮件)中打开,以便真正查看并单击“发送” - 可能会进行一些手动更改。
我测试了两种方法:
要生成EML字符串服务器端,请将字符串发送到客户端,客户端构建.EML文件(在javascript中)并使用FileSaver.js下载。它在桌面上运行正常但在iOS上的Safari中不太好(无法正常下载和打开文件)。
saveAs(new Blob([data.eml], {type: "message/rfc822 eml;charset=utf-8"}), "email.eml");
生成.EML文件服务器端并将文件发送到客户端。这适用于桌面和Safari / iOS。不幸的是,邮件没有以“草稿”状态显示,它看起来像用户邮箱中收到的邮件,不可编辑。
private Message createMessage(String to, String subject, String body) {
MimeMessage message = new MimeMessage(Session.getInstance(System.getProperties()));
message.setFlags(Flag.DRAFT, true);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setContent(body, "text/html");
message.setSubject(subject);
return message;
}
任何处于类似情况的人?你是怎么解决的?