安装postfix
在编译程序之前,需要建立相应的用户和用户组。当安装脚本执行时该用户和用户组必须存在。用下面的命令添加用户及用户组:
groupadd postfix &&
groupadd postdrop &&
groupadd -g 65534 nogroup &&
useradd -c postfix -d /dev/null -g postfix -s /bin/false postfix &&
useradd -c nobody -d /home -g nogroup -s /bin/bash -u 65534 nobody &&
chown postfix:postfix /var/mail |
用下面的命令安装postfix:
安装脚本将以'*_directory:[default]input'的形式交互式的提问。除了三个特例,默认选项都可以被接受。下面是这三个特例以及相应的修改:
daemon_directory:[/usr/libexec/postfix]/usr/sbin
manpage_directory:[/usr/local/man]/usr/share/man
sample_directory:[/etc/postfix]/usr/share/doc/postfix |
最后一步,用下面的命令安装程序的文档:
cp -rf html/* /usr/share/doc/postfix |
配置postfix
配置文件
/etc/aliases, /etc/postfix/main.cf 和 /etc/postfix/master.cf
配置信息
cat > /etc/aliases << "EOF"
# Begin /etc/aliases
MAILER-DAEMON: postmaster
postmaster: root
root: LOGIN
# End /etc/aliases
EOF |
刚才创建了/etc/aliases文件。接下来必须为你的系统定制main.cf和master.cf
文件。aliases文件需要你的非root登录身份,以便将发给root的邮件转发给你。
main.cf文件需要你的完整的合法主机名。所有的这些修改都可以通过在控制台中使用sed命令来完成,即用你的非root登录
名替换[user]以及用你的完整的合法主机名替换[localhost.localdomain]。你会发现main.cf文件中带有
文档说明,你可以根据你的情况直接用编辑器来编辑此文件。
cp /etc/aliases /etc/aliases.bak
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
sed "s/LOGIN/[user]/" /etc/aliases.bak > /etc/aliases
sed "s/#myhostname = host.domain.tld/myhostname = \
[localhost.localdomain]/" \
/etc/postfix/main.cf.bak > /etc/postfix/main.cf
/usr/bin/newaliases
/usr/sbin/postfix start |
postfix的init.d脚本
如果要自动运行postfix,可以用下面的命令创建init.d脚本:
cat > /etc/rc.d/init.d/postfix << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/postfix
# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans - [email protected]
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
start)
echo "Starting Postfix..."
loadproc postfix start
;;
stop)
echo "Stopping Postfix..."
loadproc postfix stop
;;
reload)
echo "Reloading Postfix..."
loadproc postfix reload
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|reload|restart}"
exit 1
;;
esac
# End $rc_base/init.d/postfix
EOF
chmod 755 /etc/rc.d/init.d/postfix |
用下面的命令在相应的rc.d目录中创建符号链接:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/postfix ../rc0.d/K25postfix &&
ln -sf ../init.d/postfix ../rc1.d/K25postfix &&
ln -sf ../init.d/postfix ../rc2.d/K25postfix &&
ln -sf ../init.d/postfix ../rc3.d/S35postfix &&
ln -sf ../init.d/postfix ../rc4.d/S35postfix &&
ln -sf ../init.d/postfix ../rc5.d/S35postfix &&
ln -sf ../init.d/postfix ../rc6.d/K25postfix |
内容
The postfix package contains bounce,
cleanup, error,
flush, lmtp,
local, mailq,
master, newaliases,
nqmgr, pickup,
pipe, postalias,
postcat, postconf,
postdrop, postfix,
postkick, postlock,
postlog, postmap,
postqueue, postsuper,
qmgr, qmqpd,
sendmail, showq,
smtp, smtpd,
spawn, trivial-rewrite,
以及virtual.
具体说明
postfix
postfix是启动和停止邮件传送系统的程序。
master
master是运行bounce, cleanup, error, flush,
lmtp, local, nqmgr, pickup, pipe, qmgr, qmqpd, showq, smtp, smtpd, spawn,
trivial-rewrite以及virtual的驻留进程。这些程序不能通过用户命令来运行。
postqueue
postqueue实现了Postfix的队列管理用户接口。它实现了所有以前通过sendmail
命令可以完成的操作。
sendmail
sendmail实现了Postfix和Sendmail的兼容接口。mailq和newaliases
是指向sendmail的符号链接。
showq
当Postfix邮件系统没有运行时showq将模拟mailq命令。
postsuper
postsuper完成Postfix队列的维护工作。
postalias
postalias创建,查询和更新Postfix别名数据库。
postcat
postcat用可读的格式打印Postfix队列文件的内容。
postconf
postconf打印或者更改配置参数的值。
postdrop
postdrop在maildrop目录中创建一个文件并将标准输入复制到该文件中。
postkick
postkick使得shell脚本可以访问邮件系统私有IPC。
postlock
postlock锁定文件以便对其进行独占访问和执行命令。
postlog
postlog为shell脚本实现了日志接口。
postmap
postmap创建,查询或者更新Postfix的查找表。