1. 程式人生 > >Linux上的伺服器無法呼叫新浪郵箱傳送郵件

Linux上的伺服器無法呼叫新浪郵箱傳送郵件

問題背景:

在web網站開發中,有許多功能的實現需要傳送郵件,比如使用者的密碼找回功能,可能就需要通過伺服器向用戶的註冊郵箱傳送驗證碼郵件來實現。而傳送郵件功能可以通過很多方式實現,比如HTML中的mailto屬性值,或者java程式碼,這兩種方法網上有很多例項,我在這裡就不浪費大家的流量了。當然,許多開發框架本身也是具有郵件傳送功能的,你只需要呼叫其本身的方法。

問題描述:

我們通過不同方式,實現了網站的郵件傳送功能,但是,當我們將工程釋出在Linux伺服器上後,點擊發送按鈕,卻發現伺服器後臺日誌報錯,說是無法呼叫郵件服務。

問題解決:

問題產生的原因是因為Linux伺服器(假如此伺服器為192伺服器)使用的是區域網,沒有郵箱IP(假設此處使用的郵箱為新浪郵箱)訪問許可權,因此無法訪問。按照以下步驟,即可解決該問題:

1、登入新浪郵箱,在郵箱的設定中,開啟新浪郵箱的smtp和pop的功能。

2、向你公司的網路管理員申請開通192伺服器的訪問新浪郵箱的許可權,也即是訪問smtp.sina.com和pop.sina.com這兩個域名對應IP的許可權,這兩個域名的對應的IP不唯一,你只需要各自獲取一個IP即可。

獲取方式:開啟Windows的命令視窗,然後分別使用ping指令,獲取smtp.sina.com和pop.sina.com這兩個域名的IP,如下圖所示:


可知smtp.sina.com域名的一個IP地址為202.108.6.242,以同樣方式獲取pop.sina.com的IP。

3、登入192伺服器,首先,指令 cd 

/etc/sysconfig/network-scripts進入到該目錄下 

然後,指令 vim ifcfg-eth0 進入該檔案的vim編輯器;

如下圖修改該檔案內容,紅框中的資訊必須擁有,根據具體情況修改DNS1和DNS2的內容


上面配置資訊完成後退出vim編輯器,

指令 service network restart 重啟網路服務,該指令只是重啟Linux的網路服務,對Linux上的工程沒有影響。

4、修改192伺服器的hosts配置檔案,新增兩條配置資訊

210.83.210.155    smtp.sina.com
202.96.69.38        pop.sina.com
注意:上面的IP要根據實際情況修改,上面的域名要和IP一一對應,我這裡只是寫了一個示例,不要照抄。

5、在Linux上,指令 ping smtp.sina.com ,若可以ping通,那麼,恭喜你,配置成功了,趕快試試你的工程能不能傳送郵件吧。