文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux下如何安装Postfix邮件

2023-06-27 10:21

关注

这篇文章主要介绍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 start

Postfix相关命令

# 开启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邮件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯