linux伺服器,無法傳送郵件
Could not connect to SMTP host: mail.163.com, port: 25
很是鬱悶,網上的解釋鋪天蓋地,試了一個遍,最終找個一個靠譜的,看來網上的解釋,水太深了,差點淹沒了,
然後果斷的在程式裡改為用465埠來發送,結果仍然不行,便想到是不是防火牆的問題,於是又在防火牆裡新增規則開啟465埠,如下:
儲存後,service iptables restart 重啟防火牆,然而依然沒什麼用,又各種折騰了半天試了好多方法都不行,因為啟用了ssl加密方式傳送郵件,其實我現在還不是很明白箇中緣由,呵呵,總之問題算是解決了,所以趕緊記錄下來,方便以後,同時也給遇到同樣問題的朋友一個解決辦法。
阿里雲上面解釋封鎖了25埠發郵件,建議使用加密的465,測試通過了,其他不是很明白原因,(我的另一臺伺服器沒有這些麻煩,之前直接測試成功的)
具體的程式碼,在方法前面加上如下程式碼:
Properties props=new Properties(); // SSL加密 MailSSLSocketFactory sf = null; try { sf = new MailSSLSocketFactory(); // 設定信任所有的主機 sf.setTrustAllHosts(true); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.socketFactory", sf); } catch (GeneralSecurityException e) { e.printStackTrace(); } props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.host", "smtp.ym.163.com"); props.setProperty("mail.smtp.auth", "true");//請求身份認證