Postfix中的命令行工具

运维 系统运维
本文简单得介绍了Postfix的管理工具,通过这些工具,您可以更加简单得对Postfix进行管理和运用。

  下面我们来看一看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 安装配置

 

责任编辑:zhaolei 来源: 网络转载
相关推荐

2020-12-10 16:16:08

工具代码开发

2020-12-11 06:44:16

命令行工具开发

2023-06-09 07:45:29

Kuberneteskubectl

2013-11-15 09:43:15

JDK工具

2021-11-08 10:45:07

Python命令工具

2010-11-24 17:12:17

MySQL命令行

2013-12-09 14:29:13

OpenStack命令行工具API

2018-04-03 13:50:27

Linux容器命令行工具

2017-06-15 10:32:56

OracleDBV命令行工具

2010-02-04 15:17:48

Linux wget

2023-07-05 08:38:48

GolangGo语言

2014-10-31 10:50:28

Linux命令行工具

2015-07-01 09:15:46

linuxQuora命令行

2019-08-27 10:32:01

Linux操作系统Windows

2018-05-04 09:15:35

PythonPlumbum命令行

2013-05-21 14:58:08

系统监视glances开源

2018-11-08 14:50:14

2011-06-17 16:49:05

Cocoa苹果

2015-07-29 10:34:50

Linux系统命令行工具

2018-05-02 08:06:12

点赞
收藏

51CTO技术栈公众号