के साथ जावामेल पर हस्ताक्षर कैसे करें बाहरी लाइब्रेरी के बिना ऐसा करने के लिए कोई पुस्तकालय या कोई तरीका है? मैं अपने मेल सर्वर के रूप में अपाचे जेम्स उपयोग कर रहा हूँ और वर्तमान में इस तरह ईमेल भेजें:डीकेआईएम
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 से प्रवेश करना चाहते हैं। मैं समझता हूं कि मुझे जेम्स सर्वर में डीकेआईएम हस्ताक्षर को लागू करने की आवश्यकता है और ऐसा करने के लिए जेडीकेआईएम का उपयोग करने की योजना है, मैं यह भी समझता हूं कि मुझे www.port25.com जैसे कुछ का उपयोग करके चाबियां बनाने की ज़रूरत है, लेकिन मैं वास्तव में जावा में ईमेल कैसे हस्ताक्षर करूं मैं इसे भेजता हूँ?
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? –
@Half_Duplex लाभ यह है कि आप उनमें से प्रत्येक के लिए OpenDKIM को कॉन्फ़िगर किए बिना एकाधिक एमटीए का उपयोग कर सकते हैं – Horen
यह उदाहरण स्रोत फोर्ज पर जावा के लिए डीकेआईएम के पुराने संस्करण का उपयोग करता है। तब से इसे गिटहब में स्थानांतरित कर दिया गया है और निष्क्रिय हो गया है। बाद में अभी भी इसे [जावा-यूटिल-मेल-डीकिम] नामक एक सक्रिय परियोजना के लिए फोर्क किया गया था (https://github.com/markenwerk/java-utils-mail-dkim)। आप इसे मेरे [अन्य उत्तर] (http://stackoverflow.com/a/37161192/441662) में कार्रवाई में देख सकते हैं। –