首页 > 系统相关 >Linux中Postfix邮件安装配置(二)

Linux中Postfix邮件安装配置(二)

时间:2023-07-07 19:00:21浏览次数:43  
标签:Postfix 默认 postfix usr Linux var root 邮件

摘自:http://www.ywnds.com/?p=1764

Postfix安装配置

本套邮件系统的搭建,从如何发邮件到收邮件到认证到虚拟用户虚拟域以及反病毒和反垃圾邮件等都有详细的介绍。在搭建过程中必须的参数解释以及原理都有告诉,这样才能更好地理解邮件系统。

一、卸载自带postfix

 
1 2 3 $ rpm -q postfix postfix-2.6.6-2.2.el6_1.x86_64 $ rpm -ev postfix --nodeps

二、环境准备

1. YUM要配置好。

2. 编译环境要配置好。

PS: 这两步骤如果有问题,那么可以看本网站提供的YUM和编译章节。

三、安装MySQL服务器

 
1 2 3 4 5 $ yum install mysql-server mysql mysql-devel perl-DBD-MySQL $ <span style="font-family: arial, helvetica, sans-serif;">chkconfig</span> mysqld on $ service mysqld restart $ rpm -q mysql mysql-5.1.71-1.el6.x86_64

四、安装cyrus-sasl并启动saslauthd服务(默认已安装)

 
1 2 3 $ yum install cyrus-sasl cyrus-sasl-devel $ service saslauthd start $ chkconfig saslauthd on

五、查看postfix用户

 
1 2 $ id postfix uid=89(postfix) gid=89(postfix) 组=89(postfix),12(mail)

发送邮件的用户,这里就使用系统自带的postfix用户,记住UID:89、GID:89,后面很多地方都要用到这两个ID号,如果此ID号更改了,那么Postfix安装方面会有很多目录权限都需要更改。

六、 编译安装postfix-2.11.7

 
1 2 3 4 5 6 7 8 9 10 11 $ 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       //加密库文件;

有以下信息就表示配置成功了

 
1 2 3 4 ………… [src/posttls-finger] cat ../../conf/makedefs.out Makefile.in >Makefile rm -f Makefile; (cat conf/makedefs.out Makefile.in) >Makefile

 

 
1 2 $ make $ make install

按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值,省略的表示采用默认值)

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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风格服务脚本

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [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=0 prog="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 1 esac exit $? # END

 

 
1 2 3 4 [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相关命令

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 开启postfix; $ postfix start   # 检查配置; $ postfix check   # 重新加载; $ postfix reload   $ postconf [OPTION] -d:显示Postfix默认的配置; -n:显示新修改的配置; -m:显示支持的存储文件类型如hash,mysql等; -a:显示支持sasl的客户端插件类型;

安装完毕

如果上面没有使用UID为89的postfix用户,那么检查postfix时就会报如下错误。

 
1 2 $ postfix check postsuper: fatal: scan_dir_push: open directory defer: Permission denied

原因是一般编译安装时,Postfix队列目录/var/spoole/postfix/,下有几个目录会使用系统自带postfix的目录,由于系统默认使用postfix(UID:89)用户给删除了,所以这些目录就找不到postfix用户,开启时就会报错一些权限问题,把以下几个目录权限给修改以下就好了,如果还有一些别的目录一并修改即可。

 
1 2 3 4 5 6 $ 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,就是它负责把邮件保存到邮箱里。

标签:Postfix,默认,postfix,usr,Linux,var,root,邮件
From: https://www.cnblogs.com/LiuYanYGZ/p/17535852.html

相关文章

  • linux环境变量配置文件
    在linux系统中有很多地方可以配置环境变量,有时候我们需要增加一个或者查找具体是谁修改了环境变量,往往找不到地方。这里列举一下有哪些文件会影响环境变量。配置文件正常情况,linux系统启动的时候会按照如下加载环境变量/etc/environment/etc/profile/etc/bash.bashrc/etc/z......
  • linux HAproxy
     HAproxy服务可以完成负载均衡,和反向代理,不仅可以完成几十万的高并发请求,而且可以完成保护真实服务器。 目录一、HAProxy概念二、HAProxy主要特性三、HAProxy负载均衡策略四、LVS、nginx和HAProxy区别五、部署HAproxy六、日志分析七、总结        ......
  • Linux | curl命令详解
    curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出“stdout”上面,可以用它来构造httprequest报文,curl(CommandLineUniformResourceLocator),即在命令行中利用URL进行数据或者文件传输。在Linux中curl是一个利用URL规则在命令行......
  • 如何利用 Python 自动发邮件,打工人福音
    在工作中,每天或者每周结束的时候我们都会发送相应的日报或者周报给上级领导,来汇报你做了那些工作,可是汇报工作内容的时候我们始终都是打开邮箱、写入内容,发送和抄送给固定的人,那么这么繁琐并且重复的一件事,我们能不能使用程序来简化?答案是可以的,接下来我们就使用Python来操作......
  • Linux修改ip
    1、打开终端;2、在终端执行“vi/etc/sysconfig/network-scripts/ifcfg-eth0”命令;3、点击i进入编辑模式,修改IPADDR、NETMASK等项的值;4、esc退出编辑模式,shift+:,输入x就保存好了;5、重启网卡:servicenetworkrestart;6、检查ip是否更新成功:ifconfig-a......
  • linux环境安装golang
    在使用pprof工具分析性能时,发现我们的环境上默认没有装go,所以执行不了gotoolpprof命令,于是自己手动装了下。步骤如下:首先下载一个对应系统架构的golang包,这里我用的是arm包,装的1.14.12版本。(见附件)。在环境上创一个个人目录,把包传上去,然后执行以下命令解压到/usr/local目录下(官......
  • 大模型复现实践记录-在linux环境4090GPU(24G)
    chatglm-6btiger-7b......
  • Linux 特殊权限和 ACL 权限管理
    Linux上有三种特殊权限,分别是setuid,setgid,sticky。对应权限的数值分别为4,2,1。对应权限的字母分别为s,s,t。对应的操作分别为chmodu+sfile,chmodg+sdir,chmodo+tdir,对应的操作也支持将字母替换为数字 setuid:一般作用于二进制文件,二进制文件在设置了该权限后,用户在执行......
  • linux overlay文件系统
    一个overlay文件系统包含两个文件系统,一个upper文件系统和一个lower文件系统,是一种新型的联合文件系统。overlay是“覆盖…上面”的意思,overlay文件系统则表示一个文件系统覆盖在另一个文件系统上面。为了更好的展示overlay文件系统的原理,现新构建一个overlay文件系统。......
  • linux安装nacos设置开机自启动
    1.设置nacos配置文件1.1找到系统中java安装路径java-verbose最后一行就有java安装具体路径[root@master-nodejava]#vi/etc/profile#在末尾增加exportJAVA_HOME=/usr/local/java/openJDK-1.8exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$......