我正在构建一个ImageHtmlEmail
,以便从给定的 HTML 下载所有图像并将其嵌入到多部分电子邮件中。我需要存储该电子邮件以便以后发送。
问题是,我可以获得生成的电子邮件文本和内容类型,但我看不出有任何方法可以ImageHtmlEmail
从文本和内容类型中构造一个返回。有可能吗?还是我应该使用 rawjavax.mail
进行实际发送?
我正在构建一个ImageHtmlEmail
,以便从给定的 HTML 下载所有图像并将其嵌入到多部分电子邮件中。我需要存储该电子邮件以便以后发送。
问题是,我可以获得生成的电子邮件文本和内容类型,但我看不出有任何方法可以ImageHtmlEmail
从文本和内容类型中构造一个返回。有可能吗?还是我应该使用 rawjavax.mail
进行实际发送?
我能够创建javax.mail.internet.MimeMessage
电子邮件的字符串表示形式(ASCII 转储作为一个从 gmail 下载原始电子邮件的人)。然而,在从它构建Email
子类方面还不是很成功。HtmlEmail
MimeMessage mimeMessage = MimeMessageUtils.createMimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(oneEmail.toString().getBytes()));
它确实给了我大部分我认为使用它的 getter 方法有用的东西。
不确定“从字符串构建 HtmlEmail”是什么意思,但构建 ImageHtmlMail 应该相当容易,请参阅http://commons.apache.org/email/userguide.html上的示例,您需要提供的只是一些 html - 文本通过 setHtmlMsg()
import org.apache.commons.mail.HtmlEmail;
...
// load your HTML email template
String htmlEmailTemplate = ....
// define you base URL to resolve relative resource locations
URL url = new URL("http://www.apache.org");
// create the email message
HtmlEmail email = new ImageHtmlEmail();
email.setDataSourceResolver(new DataSourceResolverImpl(url));
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test email with inline image");
// set the html message
email.setHtmlMsg(htmlEmailTemplate);
// set the alternative message
email.setTextMsg("Your email client does not support HTML messages");
// send the email
email.send();