1. 程式人生 > >記 搭建郵件伺服器(postfix)踩過的坑

記 搭建郵件伺服器(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'

folders, but subfolders not mentioned in /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錯誤。