외부 라이브러리없이이 작업을 수행 할 수있는 라이브러리가 있습니까? 내 메일 서버로 아파치 제임스를 사용하여 현재이 같은 이메일을 보내 오전 :DKIM으로 Javamail에 서명하는 방법
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으로 전자 메일에 서명하고 싶습니다. 나는 james 서버에 DKIM 서명을 구현하고 이것을 사용하기 위해 jDKIM을 사용할 계획이 있다는 것을 이해한다. 나는 또한 www.port25.com과 같은 것을 사용하여 키를 만들 필요가 있음을 이해한다. 그러나 어떻게 실제로 java에서 이메일을 서명 하는가? 내가 보내 줄까?
public void sendMessage(String to, String subject, String content) {
//Create DKIM Signer
DKIMSigner dkimSigner = null;
try {
dkimSigner = new DKIMSigner(properties.getProperty("mail.smtp.dkim.signingdomain"), properties.getProperty("mail.smtp.dkim.selector"), properties.getProperty("mail.smtp.dkim.privatekey"));
dkimSigner.setIdentity(properties.getProperty("mail.user") + "@" + properties.getProperty("mail.smtp.dkim.signingdomain"));
dkimSigner.setHeaderCanonicalization(Canonicalization.SIMPLE);
dkimSigner.setBodyCanonicalization(Canonicalization.RELAXED);
dkimSigner.setLengthParam(true);
dkimSigner.setSigningAlgorithm(SigningAlgorithm.SHA1withRSA);
dkimSigner.setZParam(true);
} catch (Exception e) {
e.printStackTrace();
}
if(dkimSigner != null) {
//Create message
Message message = new SMTPDKIMMessage(session, dkimSigner);
try {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
message.setFrom(new InternetAddress(from));
message.setSubject(subject);
message.setContent(content, "text/html; charset=utf-8");
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
Postfix가있는 openDKIM과 같이 메일 서버에 DKIM을 설정하는 것과는 대조적으로이 기능을 사용하면 어떤 이점이 있습니까? –
@Half_Duplex 장점은 각 Java 용 openDKIM을 구성하지 않고도 여러 MTA를 사용할 수 있다는 것입니다. – Horen
이 예에서는 Source Forge에서 Java 용 DKIM의 아주 오래된 버전을 사용합니다. 이후 GitHub로 옮겨져 비활성 상태가되었습니다. 나중에 여전히 [java-utils-mail-dkim] (https://github.com/markenwerk/java-utils-mail-dkim)이라는 여전히 활성 인 프로젝트로 갈 렸습니다. 내 [다른 대답] (http://stackoverflow.com/a/37161192/441662) 여기에서 실제로 볼 수 있습니다. –