Java使用465埠傳送郵件 繞過25埠限制

2021-08-10 14:40:02 字數 1639 閱讀 9346

此前使用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的可行方法,這裡記錄一下問題...