Linux下如何安装Postfix邮件
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍Linux下如何安装Postfix邮件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本套邮件系统的搭建,从如何发邮件到收邮件到认证到虚拟用户虚拟域以及反病毒和反
千家信息网最后更新 2025年11月07日Linux下如何安装Postfix邮件
这篇文章主要介绍Linux下如何安装Postfix邮件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
本套邮件系统的搭建,从如何发邮件到收邮件到认证到虚拟用户虚拟域以及反病毒和反垃圾邮件等都有详细的介绍。在搭建过程中必须的参数解释以及原理都有告诉,这样才能更好地理解邮件系统。
卸载自带postfix
$ rpm -q postfixpostfix-2.6.6-2.2.el6_1.x86_64$ rpm -ev postfix --nodeps
环境准备
\1. YUM要配置好。
\2. 编译环境要配置好。
PS: 这两步骤如果有问题,那么可以看本网站提供的YUM和编译章节。
安装MySQL服务器
$ yum install mysql-server mysql mysql-devel perl-DBD-MySQL$ chkconfig mysqld on$ service mysqld restart$ rpm -q mysqlmysql-5.1.71-1.el6.x86_64
安装cyrus-sasl并启动saslauthd服务
$ yum install cyrus-sasl cyrus-sasl-devel$ service saslauthd start$ chkconfig saslauthd on
查看postfix用户
$ id postfixuid=89(postfix) gid=89(postfix) 组=89(postfix),12(mail)
发送邮件的用户,这里就使用系统自带的postfix用户,记住UID:89、GID:89,后面很多地方都要用到这两个ID号,如果此ID号更改了,那么Postfix安装方面会有很多目录权限都需要更改。
编译安装postfix-2.11.7
$ tar zxvf postfix-2.11.7.tar.gz$ cd postfix-2.11.7$ make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'$ tar zxvf postfix-2.11.7.tar.gz$ cd postfix-2.11.7$ make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'#-DHAS_MYSQL -I/usr/include/mysql //启用Mysql存储,指定头文件;#-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl //启用SASL(cyrus)认证框架;#-DUSE_TLS //启用SSL功能;#AUXLIBS=-L/usr/lib64/mysql -lmysqlclient //找Mysql客户端库文件;#-lz //压缩裤文件;#-lm -L/usr/lib64/sasl2 //模块文件;#-lsasl2 -lssl -lcrypto //加密库文件;
有以下信息就表示配置成功了
[src/posttls-finger]cat ../../conf/makedefs.out Makefile.in >Makefilerm -f Makefile; (cat conf/makedefs.out Makefile.in) >Makefile$ make$ make install
按照以下的提示输入相关的路径([]号中的是缺省值,"]"后的是输入值,省略的表示采用默认值)
install_root: [/]#指定Postfix安装目录,默认tempdir: [/root/postfix-2.11.7] /tmp/postfix#指定Postfix临时文件目录config_directory: [/etc/postfix]#指定Postfix配置文件目录,默认command_directory: [/usr/sbin]#指定Postfix二进制文件目录,默认daemon_directory: [/usr/libexec/postfix]#指定Postfix服务器进程,默认data_directory: [/var/lib/postfix]#指定Postfix可写文件目录,默认html_directory: [no] /var/www/html/postfix#指定Postfix帮助文件,可以使用web服务器打开mail_owner: [postfix]#指定Postfix属主,默认mailq_path: [/usr/bin/mailq]#指定Postfix队列程序路径,默认manpage_directory: [/usr/local/man]newaliases_path: [/usr/bin/newaliases]#指定Postfix生成别名命令位置,默认queue_directory: [/var/spool/postfix]#指定Postfix队列目录,默认readme_directory: [no]sendmail_path: [/usr/sbin/sendmail]#指定Postfix客户端(smtp),默认setgid_group: [postdrop]#指定Postfix投递组(默认有这个组,但没有这个用户),默认
PS:如果输入错误可以按Ctrl+退格键删除字符。
添加SysV风格服务脚本
[root@localhost ~]# vim /etc/rc.d/init.d/postfix#!/bin/bash## chkconfig: 2345 80 30# description: Postfix is a Mail Transport Agent, which is the program \# processname: master# pidfile: /var/spool/postfix/pid/master.pid# config: /etc/postfix/main.cf# config: /etc/postfix/master.cf# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network # Check that networking is up.[ $NETWORKING = "no" ] && exit 3 [ -x /usr/sbin/postfix ] || exit 4[ -d /etc/postfix ] || exit 5[ -d /var/spool/postfix ] || exit 6 RETVAL=0prog="postfix" start() { # Start daemons. echo -n $"Starting postfix: " /usr/bin/newaliases >/dev/null 2>&1 /usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start" RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix echo return $RETVAL}stop() { # Stop daemons. echo -n $"Shutting down postfix: " /usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop" RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfix echo return $RETVAL}reload() { echo -n $"Reloading postfix: " /usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload" RETVAL=$? echo return $RETVAL}abort() { /usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort" return $?}flush() { /usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush" return $?}check() { /usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check" return $?} restart() { stop start}# See how we were called.case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload) reload ;; abort) abort ;; flush) flush ;; check) check ;; status) status master ;; condrestart) [ -f /var/lock/subsys/postfix ] && restart || : ;; *) echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}" exit 1esacexit $?# END[root@localhost ~]# chmod +x /etc/rc.d/init.d/postfix[root@localhost ~]# chkconfig --add postfix[root@localhost ~]# chkconfig postfix on[root@localhost ~]# service postfix startPostfix相关命令
# 开启postfix;$ postfix start # 检查配置;$ postfix check # 重新加载;$ postfix reload $ postconf [OPTION]-d:显示Postfix默认的配置;-n:显示新修改的配置;-m:显示支持的存储文件类型如hash,mysql等;-a:显示支持sasl的客户端插件类型;
安装完毕
如果上面没有使用UID为89的postfix用户,那么检查postfix时就会报如下错误。
$ postfix checkpostsuper: fatal: scan_dir_push: open directory defer: Permission denied
原因是一般编译安装时,Postfix队列目录/var/spoole/postfix/,下有几个目录会使用系统自带postfix的目录,由于系统默认使用postfix(UID:89)用户给删除了,所以这些目录就找不到postfix用户,开启时就会报错一些权限问题,把以下几个目录权限给修改以下就好了,如果还有一些别的目录一并修改即可。
$ chown -R postfix.root /var/spool/postfix/defer/$ chown -R postfix.root /var/spool/postfix/deferred/$ chown -R postfix.root /var/spool/postfix/private/$ chown -R postfix.postdrop /var/spool/postfix/public/$ chown -R postfix.postdrop /var/spool/postfix/maildrop/$ chown -R postfix.root /var/lib/postfix/
Postfix进程
master:这条进程是 Postfix 邮件系统的大脑,它产生所有其他进程。smtpd:作为服务器端程序处理所有外部连进来的请求。smtp:作为客户端程序处理所有对外发起连接的请求。qmgr:它是 Postfix 邮件系统的心脏,处理和控制邮件队列里面的所有消息。local:这是 Postfix 自有的本地投递代理MDA,就是它负责把邮件保存到邮箱里。
以上是"Linux下如何安装Postfix邮件"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
目录
邮件
文件
用户
系统
配置
服务
客户
客户端
服务器
进程
邮件系统
队列
编译
权限
程序
处理
输入
内容
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库在一个表中查信息
网络安全教育下一句是什么
板材套料软件开发商
数据库的规模和特点
奇迹单机版自动连接服务器失败
四川ai人工智能服务器云空间
网络安全保卫战人民日报
网络安全宣传周贵阳2021
微星1361服务器主板
网络安全与执法专业好吗
tx网络安全创始人大神
nb-iot无线网络技术指标
服务器负载最低的车
原神用的什么服务器
哈尔滨网络技术
跑腿软件开发框架
软件开发代码如何更新
网络安全心得六年级
网络安全小组工作总结
数据库表空间未释放
开服务器需要什么时间
数据库数据是具体的吗
数据库设计概述模板
将文件复制到ftp服务器出错
软件开发组维护组职责
北京智能消防软件开发怎么样
富士康qt软件开发
农安先进网络技术品质保障
数据库表空间未释放
我的世界天迹服务器