0
public static void sendEmail(String msgHeader, String msg, String emailId, String emailFrom) {
Properties props = new Properties();
props.put("mail.smtp.auth", "false");
props.put("mail.debug", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", mailServer);
props.put("mail.smtp.port", port#);
props.put("mail.smtp.auth.mechanisms", "NTLM");
props.put("mail.smtp.auth.ntlm.domain", domainName);
Session session = Session.getDefaultInstance(props, null);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(emailFrom));
to = emailId;
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(msgHeader);
message.setText(msg, "utf-8", "html");
message.saveChanges();
session.getDebug();
Transport.send(message);
// Copy message to "Sent Items" folder as read
Store store = session.getStore("ntlm");
store.connect(mailServer, emailFrom, pwd);
Folder folder = store.getFolder("Sent Items");
folder.open(Folder.READ_WRITE);
message.setFlag(Flag.SEEN, true);
folder.appendMessages(new Message[] {message});
store.close();
} catch (Exception ex) {
logger.error("Error occured while sending Email !", ex);
}
}
上記のコードを実行しようとすると、メールを送信できます。問題は電子メールを保存することです。行にエラー(NoSuchProviderException)が発生する Store store = session.getStore( "ntlm");保存メールを送信済みのアイテムフォルダにメールを送信しました
私はこの上のいくつかの質問があります: -
- メール送信部は、NTLMとパスワード検証せずに動作しますが。送信された電子メールをパスワード検証なしで送信済みアイテムフォルダに保存することは可能ですか?はいの場合はどうですか?
- 私は を使用するとsession.getStoreが機能しません。 smtp - 例外(無効なプロバイダ) b。 ntlm - 例外(NoSuchProviderException) ここで何を使用しますか?
ご協力いただきありがとうございます。
javax.mail jarのバージョンは何ですか? – Maverick
パッケージjavax.mail; クラスバージョン{ public static final String version = "1.4.6"; } – hnsanadhya
my jarの名前はmailapi.jarで、LICENSE.txtファイルのmeta-infの下に表示されるバージョンは1.0です – hnsanadhya