有没有一个库或一种方法可以在没有外部库的情况下做到这一点?我使用 apache james 作为我的邮件服务器,目前发送电子邮件如下:
public void sendMessage(String to, String subject, String content) {
MimeMessage message = new MimeMessage(session);
try {
message.addRecipients(Message.RecipientType.TO, to);
message.setFrom(new InternetAddress(from));
message.setSubject(subject);
message.setContent(content, "text/html; charset=utf-8");
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
但我想事先与 DKIM 签署电子邮件。我知道我需要实现 DKIM 登录到 james 服务器并计划使用 jDKIM 来执行此操作,我也知道我需要使用 www.port25.com 之类的东西创建密钥,但是我如何在 java 中实际签署电子邮件我发出去?
简单的Java邮件 http://www.simplejavamail.org/#/features最近添加了对 DKIM 签名的支持。这是您的代码,但现在使用 Simple Java Mail:
public void sendMessage(String to, String subject, String content) {
final Email email = new Email.Builder()
.from(null, from)
.to(null, to)
.subject(subject)
.textHTML(content)
.build();
email.signWithDomainKey(new File(properties.getProperty("mail.smtp.dkim.privatekey")),
properties.getProperty("mail.smtp.dkim.signingdomain"),
properties.getProperty("mail.smtp.dkim.selector"));
new Mailer(...).sendMail(email);
}
私钥参数可以是File
, InputStream
or a byte[]
.
有趣的是,Simple Java Mail 在幕后使用java-utils-mail-dkim https://github.com/markenwerk/java-utils-mail-dkim(GitHub),这是休眠的活跃分支JavaMail 的 DKIM https://github.com/usrflo/DKIM-for-JavaMail(GitHub),这是您现在使用的库的延续,用于 Java 邮件的 DKIM https://sourceforge.net/projects/dkim-javamail/(来源Forge)。所以,你用的这个已经很旧了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)