至此虽然可以通过PostfixAdmin发送邮件,但是仅限于管理员账户,普通用户登录不能发送。而且由于极大的简化了配置,发送的邮件也无法存储。所以要通过客户端,将发送邮件保存到本地,采用用户登录的方式,更方便的发送邮件。
Postfix配置
修改
/etc/postfix/main.cf
,配置基于Dovecot的SASL身份验证smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, permit_sasl_authenticated
修改
/etc/postfix/master.cf
,开启接收邮件时,Submission服务的STARTTLS与SMTPS服务的TLS加密submission inet n - n - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_tls_auth_only=yes smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_auth_only=yes -o smtpd_tls_wrappermode=yes
Dovecot配置
新建
/etc/dovecot/dovecot-sql.conf.ext
,配置接收Posrfix身份验证的数据库验证driver = mysql connect = host=localhost dbname=postfix数据库名称 user=数据库用户名 password=数据库密码 default_pass_scheme = SHA512 password_query = SELECT username as user, password FROM mailbox WHERE username = '%u'
修改
/etc/dovecot/conf.d/10-master.conf
,配置与Postfix的身份验证通信service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }
修改
/etc/dovecot/conf.d/10-auth.conf
,配置身份验证规则disable_plaintext_auth = no auth_mechanisms = plain login !include auth-sql.conf.ext
客户端登录
- 配置完成后重启Postfix和Dovecot
systemctl restart postfix && systemctl restart dovecot
- 然后开放防火墙端口
firewall-cmd --permanent --add-service=smtp-submission && firewall-cmd --permanent --add-service=smtps && firewall-cmd --reload
- 使用Thunderbird客户端,登陆后设置关闭自动检查新邮件,邮件备份至本机信件夹
- 如果无法验证,可以在VPS上使用
swaks --to 收件邮箱 --from 寄件邮箱 --server smtp服务器域名 --auth PLAIN --auth-user 账号 --auth-password 密码
进行验证
但是,在开启了cloudflare的DNS解析的CDN后,解析邮件服务器会导致无法解析到真实ip;如果客户端服务器配置成ip,或关闭CDN,因为cloudflare的TLS证书只能用于cloudflare到目标服务器,会导致本机直接到目标服务器无TLS证书可以使用,TLS加密失败。所以需要使用Certbot申请和使用Let's Encrypt的SSL证书,配置postfix使用完整的TLS证书!
评论已关闭