此前使用25埠傳送郵件時在本地可以跑,但是阿里雲封掉了25埠,導致部署在阿里雲上面的專案不能正常發郵件。進過比較,我選中更改埠為465解決這個問題。找阿里雲官方解除25埠限制太麻煩了。
其中的環境變數由開發,測試,生產 3種環境,我是通過不同編譯環境獲取到配置檔案中不同的值,對應dev,test,aliyun三種。原始碼如下:
/**
* @author licf
* @since 2017-11-09
*/public class sendmail implements serializable
/***@描述 傳送郵件方法
*@引數 [environment, mailto, content, model]
*@返回值 void
*@建立人 licf
*@建立時間 2017/11/9
*@修改人和其它資訊
*/public void send(string environment, string mailto, string content, string model) });
message msg = new mimemessage(session);
internetaddress fromaddress = null;
//設定自定義發件人暱稱
if(null != nick && !"".equals(nick)) catch (unsupportedencodingexception e)
} else
// 設定發件人位址資訊
msg.setfrom(fromaddress);
// 設定收件人位址資訊
string to = mailto.split(",");
for(int i = 0; i < to.length;i++)
//設定郵件主題
if (constant.server_env_uat.equals(environment )) else if(constant.server_env_dev.equals(environment )) else if (constant.server_env_product.equals(environment ))else
// 郵件內容
msg.settext(content);
//傳送時間
msg.setsentdate(new date());
transport.send(msg);
} catch (addres***ception e) catch (messagingexception e)
}}
方法的呼叫很簡單,如下:
sendmail sendmail = new sendmail(constant.email_username,constant.email_password,constant.email_username ,constant.email_nick, constant.email_info);
通過構造方法注入使用者名稱,密碼,發件人,暱稱,主題。然後呼叫send方法傳送郵件即可,其中mailto是多個收件人的位址的字串,以英文逗號分隔,也可以使用list型別的返回值接收,此時只需要更改遍歷發件人那塊即可。
Centos使用mailx465埠傳送郵件
mailx預設25埠傳送郵件,但是在一些雲伺服器中為了防止郵件濫發,往往都對25埠做了限制,所以此時就使用到加密的465埠了,本篇文章以qq郵箱為例來配置mailx,通過465埠傳送郵件。1 關閉其它的郵件工具 service sendmail stop chkconfig sendmail off...
Centos使用mailx 465埠傳送郵件
1 安裝mailx centos7預設已安裝 yum install mailx 2 建立證書 以qq郵箱為例 1 mkdir p root certs 2 echo n openssl s client connect smtp.qq.com 465 sed ne begin certificat...
使用php mail函式通過465埠傳送郵件
由於專案需要,必須支援php使用原生mail函式實現郵件傳送 所以暫時拋棄使用郵件類,linuxmail等解決方案 在網上搗鼓半天sendmail,網上的資料翻了遍,都沒找到很好的解決方法 由於伺服器封禁了25埠,必須要通過465傳送郵件 最後終於找到了使用postfix的可行方法,這裡記錄一下問題...