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
然後,指令 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通,那麼,恭喜你,配置成功了,趕快試試你的工程能不能傳送郵件吧。