Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2013年9月24日 星期二
2013年2月25日 星期一
在 OpenJDK 上使用 JavaMail 的問題
目前還在尋找問題中。
已經發現的問題是 JavaMail 在建立 Socket 連線時會噴以下的 Exception:
已經發現的問題是 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:
Google 了一下,雖然還蠻快找到解法,不過還不是非常了解這個問題的原因
可能是系統沒有預設告訴 JavaMail 要如何處理特定的 MIME 格式吧。
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年6月13日 星期三
2012年4月24日 星期二
553 Mail from must equal authorized user
今天在尋找免費且有支援 TLS/SSL 加密的 SMTP 服務時,測試跑出以下的錯誤訊息:
原本以為是帳號密碼打錯之類的,還重打了幾次帳號~
553 Mail from must equal authorized user
原本以為是帳號密碼打錯之類的,還重打了幾次帳號~
2012年4月18日 星期三
JavaMail 相關資源
先記錄一下 JavaMail 相關的一些資源
1、JavaMail API - FAQ
FAQ 當中有提到使用 JavaMail 連接 Exchange Server 時,帳號要打的內容必須是 domain_name/windows_account/mail_account,不過目前尚未實際側試過...。
2、JavaMail quick start
3、JavaMail Properties
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"。
測試過公司、以前學校的郵件伺服器(未加密),以及 Gmail、Yeah、QQ 的 SSL 連線,還有 Gmail 的 TLS 連線。
其中 TLS 連線可以參考 [1] 的討論,原本我以為 TLS 是加密連線
不過似乎 TLS 其實是明文,因此需要加密內文的 SSL 在設定屬性時要用 "smtps",但 TLS 要用 "smtp"。
訂閱:
文章 (Atom)