我已經找到了相當多的配置Glassfish電子郵件的參考,但我一直無法解決我自己的問題,我希望有人可以提供幫助。Glassfish電子郵件配置與交換
我已經使用郵件主機,用戶,發件人地址和說明在Glassfish 3.12控制檯中配置了JavaMail會話。傳輸協議設置爲SMTP,並添加了mail.smtp.host(和mail.smtp.auth = false)屬性。
我用來發送郵件的代碼如下:
public class JndiMail {
@Resource(name = "mail/[my-email]")
private Session mailSession;
public void sendMessage() {
Message msg = new MimeMessage(mailSession);
try {
msg.setSubject("[app] Email Alert");
msg.setRecipient(RecipientType.TO,
new InternetAddress("[email protected]",
"User name"));
msg.setText("Hello ");
Transport.send(msg);
}
catch(MessagingException me) {
System.out.println(me.toString());
}
catch(UnsupportedEncodingException uee) {
}
}
}
每次應用程序發送的電子郵件,我有一個日誌消息說,本地主機拒絕的電子郵件。我正在嘗試使用遠程交換服務器 - 不是本地主機。我不明白爲什麼遠程電子郵件服務器沒有被訪問?我意識到這應該是相當直接的,所以我很抱歉如果我錯過了一些東西。
這些Glassfish的日誌:
[#|2013-03-26T10:00:39.334+1100|INFO|glassfish3.1.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=29;_ThreadName=Thread-2;|DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]|#]
[#|2013-03-26T10:00:39.334+1100|INFO|glassfish3.1.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=29;_ThreadName=Thread-2;|DEBUG SMTP: useEhlo true, useAuth false|#]
[#|2013-03-26T10:00:39.334+1100|INFO|glassfish3.1.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=29;_ThreadName=Thread-2;|DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false|#]
請發佈您是如何在Glassfish上配置郵件會話的。來自Exchange的錯誤消息究竟是什麼意思? – 2013-03-25 07:56:36
我通過管理控制檯創建了一個JavaMail資源。我使用了名稱my-email(如上)。我沒有爲資源添加其他屬性 - 設置mail.smtp.host和mail.smtp.auth。調試也被打開。我目前無法從我所在的位置訪問Glassfish日誌,但是日誌消息的格式爲「本地主機無響應」 – skyman 2013-03-25 08:47:14
From localhost?這是可疑的,正如你所提到的,你正試圖連接到遠程主機。您確定您在Glassfish的「郵件主機」字段中輸入了正確的值嗎?順便說一下,你檢查過你的服務器和Exchange之間的連接嗎? – 2013-03-25 10:22:08