Postfix中的命令行工具
下面我們來看一看postfix的命令行工具,通過這些工具的使用可能會使你對postfix的管理更簡單。
一、sendmail兼容的命令行工具
1. mailq 對郵件隊列文件進(jìn)行列表。表中的每一個條目包含有以下信息:
隊列文件ID、郵件的大小、到達(dá)的時間、發(fā)件人、收件人和投遞延遲的原因(如果投遞有延遲的話)。該命令主要是與showq后臺程序通信來獲取隊列文件的相關(guān)信息。該命令無參數(shù)。
2. newaliases 該工具進(jìn)行別名數(shù)據(jù)庫的初始化。如果沒有指定數(shù)據(jù)庫的類型,則使用系統(tǒng)默認(rèn)的數(shù)據(jù)庫類型(在linux下為hash)。該命令可以不帶參數(shù)執(zhí)行。
二、 postfix自帶的命令行工具
1. postcat 打印郵件隊列文件的內(nèi)容。后面界要顯示的隊列文件名,可以帶一個-v的參數(shù)進(jìn)行冗余顯示。
2. postconf 打印配置參數(shù)設(shè)置后的值或postfix的其他信息。
-d 打印配置參數(shù)的缺省值。
-m 列出所有支持的查詢表類型。
不帶參數(shù)則打印配置參數(shù)設(shè)置后的值。
3. postmap 建立postfix查詢數(shù)據(jù)庫。在linux下可以直接跟上原始文件而不帶任何參數(shù)來建立該數(shù)據(jù)庫。
三、 postfix的日志
postfix的日志文件位于/etc/log/maillog, 文件中包含有postfix的啟動信息、出錯信息以及同其他SMTP服務(wù)器的會話等等。如下所示:
Sep 10 05:54:17 mail postfix/smtpd[5072]: disconnect from unknown[204.140.244.150]
Sep 10 06:06:00 mail postfix/qmgr[467]: 50D403DF8: from=, size=6591 (queue active)
Sep 10 06:11:06 mail postfix/smtp[5085]: connect to bjmx2.163.net[202.108.255.241]: read timeout (port 25)
Sep 10 06:16:07 mail postfix/smtp[5085]: connect to bjmx3.163.net[202.108.255.242]: read timeout (port 25)
Sep 10 06:21:08 mail postfix/smtp[5085]: connect to bjmx1.163.net[202.108.255.240]: read timeout (port 25)
四、在postfix中使用MySQL數(shù)據(jù)庫
Scott Cotton 和 Joshua Marcus寫了一段可以在postfix中添加mysql映射類型的代碼,從而我們可以將postfix查詢的別名數(shù)據(jù)庫等數(shù)據(jù)存儲在mysql數(shù)據(jù)庫中,讓postfix進(jìn)行mysql查詢來得到結(jié)果。這樣做將有助于提供postfix的運行效率, 有其對需要不斷對映射數(shù)據(jù)的站點特別有用。
1.為postfix添加識別mysql數(shù)據(jù)庫映射的功能
a. 由于這段代碼使用了mysql客戶端庫,所以我們必須安裝mysql的開包。
可以到www.redhat.com等linux相關(guān)站點下載mysql開發(fā)包,也可以從某些linux的資源光盤中取得mysql的開發(fā)包,如MySQL-client-3.22.30-1.i386.rpm。
b. 安裝該開發(fā)包:
rpm -ivh MySQL-client-3.22.30-1.i386.rpm
c. 下載postfix的源代碼包,根據(jù)本章“3.1源代碼包的安裝”的提示進(jìn)行安裝,但是注意在執(zhí)行make命令之前先執(zhí)行以下命令:
make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I /usr/include/mysql'
'AUXLIBS=/usr/lib/mysql/libmysqlclient.a -lm'
5. 配置postfix使用mysql數(shù)據(jù)庫映射
我們以alias_maps進(jìn)行說明。在main.cf中指定:
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
6. 編輯mysql-aliases.cf
#首先指定登錄到mysql服務(wù)器的用戶名和密碼
user = your_user_name
password = your_password
#連接的數(shù)據(jù)庫名稱
dbname = your_database_name
#查詢的表名
table = mytable
#添加表的字段名稱
#forward_addr為轉(zhuǎn)發(fā)地址
#alias為別名數(shù)據(jù)
select_field=forward_addr
where_field=alias
#添加附加的查詢條件
additional_conditions=and status='paid'
#指定要連接的MySQL服務(wù)器
hosts=your.mysql.server
這樣,當(dāng)發(fā)生一個查詢的時候,postfix是以這樣的SQL語句進(jìn)行查詢的:
select forward_addr from mytable where alias='$lookup' and status='paid'
以上只是我例舉的一個例子。在實際的運用中您可以指定多個mysql數(shù)據(jù)庫,使用多個數(shù)據(jù)表格。
【編輯推薦】