Postfix中的命令行工具
创始人
2024-07-20 09:20:22
0

  下面我们来看一看postfix命令行工具,通过这些工具的使用可能会使你对postfix的管理更简单。

一、sendmail兼容的命令行工具

  1. mailq 对邮件队列文件进行列表。表中的每一个条目包含有以下信息:

  队列文件ID、邮件的大小、到达的时间、发件人、收件人和投递延迟的原因(如果投递有延迟的话)。该命令主要是与showq后台程序通信来获取队列文件的相关信息。该命令无参数。

  2. newaliases 该工具进行别名数据库的初始化。如果没有指定数据库的类型,则使用系统默认的数据库类型(在linux下为hash)。该命令可以不带参数执行。

二、 postfix自带的命令行工具

  1. postcat 打印邮件队列文件的内容。后面界要显示的队列文件名,可以带一个-v的参数进行冗余显示。

  2. postconf 打印配置参数设置后的值或postfix的其他信息。

  -d 打印配置参数的缺省值。

  -m 列出所有支持的查询表类型。

  不带参数则打印配置参数设置后的值。

  3. postmap 建立postfix查询数据库。在linux下可以直接跟上原始文件而不带任何参数来建立该数据库。

三、 postfix的日志

  postfix的日志文件位于/etc/log/maillog, 文件中包含有postfix的启动信息、出错信息以及同其他SMTP服务器的会话等等。如下所示:

  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数据库

  Scott Cotton 和 Joshua Marcus写了一段可以在postfix中添加mysql映射类型的代码,从而我们可以将postfix查询的别名数据库等数据存储在mysql数据库中,让postfix进行mysql查询来得到结果。这样做将有助于提供postfix的运行效率, 有其对需要不断对映射数据的站点特别有用。

  1.为postfix添加识别mysql数据库映射的功能

  a. 由于这段代码使用了mysql客户端库,所以我们必须安装mysql的开包。

  可以到www.redhat.com等linux相关站点下载mysql开发包,也可以从某些linux的资源光盘中取得mysql的开发包,如MySQL-client-3.22.30-1.i386.rpm。

  b. 安装该开发包:

  rpm -ivh MySQL-client-3.22.30-1.i386.rpm

  c. 下载postfix的源代码包,根据本章“3.1源代码包的安装”的提示进行安装,但是注意在执行make命令之前先执行以下命令:

  make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I /usr/include/mysql'

  'AUXLIBS=/usr/lib/mysql/libmysqlclient.a -lm'

  5. 配置postfix使用mysql数据库映射

  我们以alias_maps进行说明。在main.cf中指定:

  alias_maps = mysql:/etc/postfix/mysql-aliases.cf

  6. 编辑mysql-aliases.cf

  #首先指定登录到mysql服务器的用户名和密码

  user = your_user_name

  password = your_password

  #连接的数据库名称

  dbname = your_database_name

  #查询的表名

  table = mytable

  #添加表的字段名称

  #forward_addr为转发地址

  #alias为别名数据

  select_field=forward_addr

  where_field=alias

  #添加附加的查询条件

  additional_conditions=and status='paid'

  #指定要连接的MySQL服务器

  hosts=your.mysql.server

  这样,当发生一个查询的时候,postfix是以这样的SQL语句进行查询的:

  select forward_addr from mytable where alias='$lookup' and status='paid'

  以上只是我例举的一个例子。在实际的运用中您可以指定多个mysql数据库,使用多个数据表格。

【编辑推荐】

  1. Postfix入门篇
  2. Postfix对邮件的处理流程
  3. Linux下的邮件服务器 postfix
  4. 如何安装Postfix
  5. Postfix邮件安装实现介绍
  6. postfix 安装配置

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...