当前位置:   article > 正文

Postfix+Dovecot+Roundcube开源邮件系统搭建系列3:Postfix安装配置

Postfix+Dovecot+Roundcube开源邮件系统搭建系列3:Postfix安装配置

1. Postfix安装

通过yum直接安装:

yum -y install postfix postfix-mysql

启动服务并设置开机自启动:

  1. systemctl start postfix
  2. systemctl enable postfix

2. Postfix配置

Postfix配置文件在/etc/postfix目录,主要涉及main.cf、master.cf配置文件。

  • main.cf – 包含 Postfix 的全局配置。
  • master.cf – 指定 Postfix 与各种进程的交互以完成邮件发送。
  • access – 指定访问规则,如允许连接到 Postfix 的主机。
  • transport – 将电子邮件地址映射到中继主机。
  • alias – 包含邮件协议所需的可配置列表,其描述用户 ID 别名。请注意,您可以在 /etc/ 目录中找到此文件。

2.1 /etc/postfix/main.cf 配置文件

这是一个非常复杂的配置文件,参考其他文章,可以直接复制如下配置文件内容替换原有内容:

  1. # 本站域名
  2. mydomain = mailabc.cn
  3. # 设置默认域名
  4. myorigin = mail.mailabc.cn
  5. # 设置本机主机名
  6. myhostname = mail.mailabc.cn
  7. # 本站可以接受的域名
  8. mydestination = \$mydomain
  9. inet_interfaces = all
  10. # 配置可以发送的邮件大小为50M
  11. message_size_limit=52428800
  12. # 邮箱空间不做限制
  13. mailbox_size_limit=0
  14. # 配置ssl证书
  15. smtpd_tls_cert_file=/var/sslcert/www.mailabc.cn.pem
  16. # 配置ssl证书私钥
  17. smtpd_tls_key_file=/var/sslcert/www.mailabc.cn.key
  18. # 启用tls加密
  19. smtpd_use_tls=yes
  20. # 仅将传入的 SMTP 连接限制到经过身份验证的用户
  21. smtpd_tls_auth_only = yes
  22. # 为 SMTP 身份验证启用 Dovecot SASL
  23. smtpd_sasl_type = dovecot
  24. # 使用 UNIX-域套接字在 Postfix 和 Dovecot 之间进行通信
  25. smtpd_sasl_path = private/auth
  26. # 启用 SMTP 身份验证
  27. smtpd_sasl_auth_enable = yes
  28. # 收件人地址过滤规则。
  29. # permit_sasl_authenticated:允许通过 SMTP 认证的用户向外发送邮件
  30. # permit_mynetworks:允许 IP 地址在 mynetworks 配置项中定义的网络范围内的客户端使用本邮件系统发送邮件
  31. # reject_unauth_destination: 当收件人地址不包括在 Postfix 的授权网络内时,将拒绝发送该邮件
  32. smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
  33. # smtp banner提示信息,即连接到25端口的回显信息
  34. smtpd_banner = $myhostname ESMTP $mail_name
  35. biff = no
  36. append_dot_mydomain = no
  37. readme_directory = no
  38. # 别名相关配置
  39. alias_maps = hash:/etc/aliases
  40. alias_database = hash:/etc/aliases
  41. relayhost =
  42. mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  43. recipient_delimiter = +
  44. # 表示通过lmtp (Local Mail Transfer Protocol)协议,将本地邮件传递到dovecot中
  45. virtual_transport = lmtp:unix:private/dovecot-lmtp
  46. # 虚拟域名通过mysql查询,指定查询脚本位置
  47. virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
  48. # 虚拟用户通过mysql查询,指定查询脚本位置
  49. virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
  50. # 虚拟用户别名通过mysql查询,指定查询脚本位置
  51. virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

上述提到需要通过mysql查询虚拟用户、别名等信息,需要单独配置。里面涉及mysql中配置的数据库名称、授权账户、密码等信息,需要根据实际修改。

编辑 /etc/postfix/mysql-virtual-mailbox-domains.cf 配置:
  1. user = mailuser
  2. password = admin@123
  3. hosts = 127.0.0.1
  4. dbname = maildb
  5. query = SELECT 1 FROM vt_domain WHERE name='%s'
编辑 /etc/postfix/mysql-virtual-mailbox-maps.cf 配置:
  1. user = mailuser
  2. password = admin@123
  3. hosts = 127.0.0.1
  4. dbname = maildb
  5. query = SELECT 1 FROM vt_user WHERE email='%s'
编辑 /etc/postfix/mysql-virtual-alias-maps.cf 配置:
  1. user = mailuser
  2. password = admin@123
  3. hosts = 127.0.0.1
  4. dbname = maildb
  5. query = SELECT destination FROM vt_alias WHERE source='%s'

重启postfix服务:

systemctl restart postfix

可以通过postmap测试上述配置的正确性:

  1. # 返回1,表示查询到mailabc.cn域名
  2. [root@localhost postfix]# postmap -q mailabc.cn mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
  3. 1
  4. # 返回1,表示查询到admin@mailabc.cn这个用户
  5. [root@localhost postfix]# postmap -q admin@mailabc.cn mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
  6. 1
  7. # 返回admin@mailabc.cn,表示查询到postmaster@mailabc.cn别名对应的真实账号
  8. [root@localhost postfix]# postmap -q postmaster@mailabc.cn mysql:/etc/postfix/mysql-virtual-alias-maps.cf
  9. admin@mailabc.cn

2.2 /etc/postfix/master.cf 配置文件

该配置文件也比较复杂,用于配置各进程的交互规则。可以清空原有配置,直接复制下面的配置。其中smtp、submission、smtps分别表示启用这三个服务,分别对应25、587、465协议端口。

该配置文件有严格的缩进检查,-o开头有两个空格,表示上一层配置的参数。

  1. smtp inet n - n - - smtpd
  2. submission inet n - - - - smtpd
  3. -o syslog_name=postfix/submission
  4. -o smtpd_tls_security_level=encrypt
  5. -o smtpd_sasl_auth_enable=yes
  6. -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  7. smtps inet n - y - - smtpd
  8. -o syslog_name=postfix/smtps
  9. -o smtpd_tls_wrappermode=yes
  10. -o smtpd_sasl_auth_enable=yes
  11. -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  12. -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  13. -o smtpd_sasl_type=dovecot
  14. -o smtpd_sasl_path=private/auth
  15. pickup unix n - n 60 1 pickup
  16. cleanup unix n - n - 0 cleanup
  17. qmgr unix n - n 300 1 qmgr
  18. tlsmgr unix - - n 1000? 1 tlsmgr
  19. rewrite unix - - n - - trivial-rewrite
  20. bounce unix - - n - 0 bounce
  21. defer unix - - n - 0 bounce
  22. trace unix - - n - 0 bounce
  23. verify unix - - n - 1 verify
  24. flush unix n - n 1000? 0 flush
  25. proxymap unix - - n - - proxymap
  26. proxywrite unix - - n - 1 proxymap
  27. smtp unix - - n - - smtp
  28. relay unix - - n - - smtp
  29. -o syslog_name=postfix/$service_name
  30. showq unix n - n - - showq
  31. error unix - - n - - error
  32. retry unix - - n - - error
  33. discard unix - - n - - discard
  34. local unix - n n - - local
  35. virtual unix - n n - - virtual
  36. lmtp unix - - n - - lmtp
  37. anvil unix - - n - 1 anvil
  38. scache unix - - n - 1 scache

至此,Postfix基本配置完毕,此时可以通过sendmail或者mail命令做一些发信测试,不过大概率会失败的,主要原因是里面与Dovecot相关的内容尚未配置。

其他配置请查看本系列其他文章。

参考来源:Postfix+Dovecot+Roundcube开源邮件系统搭建系列3:Postfix安装配置 | MailABC邮件知识百科

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/846274
推荐阅读
相关标签
  

闽ICP备14008679号