記 搭建郵件伺服器(postfix)踩過的坑
首先搭建 postfix 郵件伺服器本身難度不大,主要是當遇到問題了能夠找打解決辦法,有些問題是系統配置問題,你得找到地方修改,再次是有些問題不是那麼明顯的就在終端顯示出來了,你得學會分析日誌,分析日誌的前提是你得知道有對應日誌的存在。先附上鍊接 www.cmhello.com/lnmp-centos-postfix.html, 基本上按照這篇文章的方法來配置,就可以成功了,但是還是會遇到一些坑,廢話不多說了,接下來說說我踩到的坑。
1.error while loading shared libraries:/usr/lib64/mysql/libmysqlclient.so.16
:
cannot open shared object file: No such file or directory
大致意思是說 libmysqlclient.so.16 這個庫檔案沒有找到。
然後通過google找到了這個連結 https://kb.plesk.com/en/120923
大致解決辦法就是 先用 ldd命令檢視缺少的庫檔案(ldd命令用於判斷某個可執行的 binary 檔案含有什麼動態函式庫。)
Cause
#動態連結庫預設是在 /usr/lib64或者 /usr/lib 這兩個地址尋找,但是這個兩個路徑下的子目錄
在 /etc/ld.co.conf 裡面沒有提到會被忽略
Dynamic library is being searched in the'/usr/lib64'
or
'/usr/lib'
/etc/ld.co.conf
are ignored.
Resolution
#找到對應的動態連結庫的地址
Find the folder where shared libraries are located, for example,/usr/lib64/mysql
or
/usr/lib64/sw
~# echo '/usr/lib64/mysql' >> /etc/ld.so.conf.d/mysqlclient.conf ~# echo '/usr/lib64/sw' >> /etc/ld.so.conf.d/sw_libs.conf ~# echo '/usr/lib/sw' >> /etc/ld.so.conf.d/sw_libs.conf ~# echo '/usr/lib/libboost-plesk-1.54.0/' >> /etc/ld.so.conf.d/sw_libs.conf ~# ldconfig -v
其實這個坑百度了好久都沒有解決,啟示是要用google
2. 郵件伺服器搭建完了然後用shell 下面的 mail -s "" 命令測試了一下發送成功,本以為就大功告成了,到實際的業務程式碼裡面(python smtplib 傳送郵件卻失敗了),python裡面報錯大意是 connection斷了,拿了錯誤 直接google了找了好久也沒有答案,然後自己用telnet localhost 25 連,也是報connection斷了。然後 檢視郵件日誌/var/log/maillog,fatal: non-null
host address bits in "127.0.0.1/8", perhaps you should use "127.0.0.0/8" instead
然後就回到 postfix 的 main.cf 裡面 修改了 mynetworks 的配置,最後 在 telnet ,成功了,業務程式碼也成功了。
啟示,在沒有搞明白到底是什麼錯誤之前,直接去google的時候很難找到問題所在,先找錯誤日誌,在日誌中找到問題所在,再google錯誤。