顯示具有 JavaMail 標籤的文章。 顯示所有文章
顯示具有 JavaMail 標籤的文章。 顯示所有文章

2013年9月24日 星期二

使用 JavaMail 發送帶有附件的郵件

真正需要額外加上資訊的只有在產生 Multipart 的資訊時,要額外放入附件的資訊。

2013年2月25日 星期一

在 OpenJDK 上使用 JavaMail 的問題

目前還在尋找問題中。
已經發現的問題是 JavaMail 在建立 Socket 連線時會噴以下的 Exception:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
  nested exception is:
        java.io.IOException: Can't create MailSSLSocketFactory
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1966)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
        at javax.mail.Service.connect(Service.java:295)
        at javax.mail.Service.connect(Service.java:176)
        at org.twgogo.jimwayne.mail.MailService.sendMail(MailService.java:266)
        at org.twgogo.jimwayne.mail.MailService.sendMail(MailService.java:157)
        at org.twgogo.jimwayne.main.Main.sendMail(Main.java:52)
        at org.twgogo.jimwayne.main.Main.main(Main.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.io.IOException: Can't create MailSSLSocketFactory
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:344)
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:239)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1929)
        ... 12 more
Caused by: java.security.KeyStoreException: problem accessing trust storejava.io.EOFException
        at sun.security.ssl.TrustManagerFactoryImpl.engineInit(TrustManagerFactoryImpl.java:75)
        at javax.net.ssl.TrustManagerFactory.init(TrustManagerFactory.java:247)
        at com.sun.mail.util.MailSSLSocketFactory$MailTrustManager.<init>(MailSSLSocketFactory.java:333)
        at com.sun.mail.util.MailSSLSocketFactory$MailTrustManager.<init>(MailSSLSocketFactory.java:331)
        at com.sun.mail.util.MailSSLSocketFactory.<init>(MailSSLSocketFactory.java:115)
        at com.sun.mail.util.MailSSLSocketFactory.<init>(MailSSLSocketFactory.java:94)
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:337)
        ... 14 more

no object DCH for MIME type multipart/mixed

在嘗試把寄信的程式寫成獨立的 Java 應用程式時,遇到以下的 Exception:
javax.mail.MessagingException: IOException while sending message;
  nested exception is:
 javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; 

Google 了一下,雖然還蠻快找到解法,不過還不是非常了解這個問題的原因
可能是系統沒有預設告訴 JavaMail 要如何處理特定的 MIME 格式吧。

2012年4月24日 星期二

553 Mail from must equal authorized user

今天在尋找免費且有支援 TLS/SSL 加密的 SMTP 服務時,測試跑出以下的錯誤訊息:

553 Mail from must equal authorized user

原本以為是帳號密碼打錯之類的,還重打了幾次帳號~

2012年4月18日 星期三

透過 Exchange Server 用 JavaMail 寄信

跟之前不同的地方在於,要透過 Exchange Server 好像必須提供 Authenticator,程式碼必須修改以下的部份:

JavaMail 相關資源

先記錄一下 JavaMail 相關的一些資源

1、JavaMail API - FAQ
FAQ 當中有提到使用 JavaMail 連接 Exchange Server 時,帳號要打的內容必須是 domain_name/windows_account/mail_account,不過目前尚未實際側試過...。
2、JavaMail quick start
3、JavaMail Properties

2011年9月8日 星期四

使用 Java 寄信:JavaMail 範例 (2012-10-12 修正)

自己寫的寄信程式的範例~
測試過公司、以前學校的郵件伺服器(未加密),以及 Gmail、Yeah、QQ 的 SSL 連線,還有 Gmail 的 TLS 連線。
其中 TLS 連線可以參考 [1] 的討論,原本我以為 TLS 是加密連線
不過似乎 TLS 其實是明文,因此需要加密內文的 SSL 在設定屬性時要用 "smtps",但 TLS 要用 "smtp"。