LNMP环境下如何配置邮件服务
导读:LNMP环境下配置邮件服务 一、方案与组件选择 在 Linux + Nginx + MySQL/MariaDB + PHP(LEMP/LNMP) 环境中,常用组合是:Postfix 作为 MTA(SMTP,端口25/587),Doveco...
LNMP环境下配置邮件服务
一、方案与组件选择
- 在 Linux + Nginx + MySQL/MariaDB + PHP(LEMP/LNMP) 环境中,常用组合是:Postfix 作为 MTA(SMTP,端口25/587),Dovecot 提供 IMAP/POP3(端口143/110,SSL/TLS 为993/995),实现邮件的发送与接收。
- 若仅需在网站内发信(如注册验证、找回密码),可仅部署 Postfix 并使用 SMTP 提交端口 587 + STARTTLS;若需用户用客户端收信,需部署 Dovecot 的 IMAP/POP3。
- 为提升可信度与到达率,建议同时配置 SPF、DKIM、DMARC 等标准(见下文进阶)。
二、Debian/Ubuntu 快速部署步骤
- 安装组件
- Debian:sudo apt update & & sudo apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils
- Ubuntu:sudo apt update & & sudo apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd
- 安装 Postfix 时选择 Internet Site,并设置 系统邮件名(如:mail.yourdomain.com)。
- Postfix 基础配置(/etc/postfix/main.cf)
- 建议关键项:
- myhostname = mail.yourdomain.com
- mydomain = yourdomain.com
- myorigin = $mydomain
- inet_interfaces = all
- inet_protocols = ipv4(或 all)
- mydestination = $myhostname, localhost.$mydomain, $mydomain
- mynetworks = 127.0.0.0/8 [::1]/128
- home_mailbox = Maildir/
- smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
- smtpd_sasl_auth_enable = yes
- smtpd_sasl_security_options = noanonymous
- smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
- 建议关键项:
- Dovecot 基础配置
- /etc/dovecot/dovecot.conf:mail_location = maildir:~/Maildir;protocols = imap pop3
- /etc/dovecot/conf.d/10-auth.conf:disable_plaintext_auth = no;auth_mechanisms = plain login
- /etc/dovecot/conf.d/10-ssl.conf:ssl = yes;ssl_cert = /etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem;ssl_key = /etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
- 可选(LMTP 投递):/etc/dovecot/conf.d/10-master.conf 中 service lmtp { inet_listener lmtp { port = 24 } }
- 启动与开机自启
- sudo systemctl start postfix & & sudo systemctl enable postfix
- sudo systemctl start dovecot & & sudo systemctl enable dovecot
- 防火墙放行
- UFW:sudo ufw allow 25/tcp, 143/tcp, 110/tcp, 587/tcp, 993/tcp, 995/tcp
- firewalld:sudo firewall-cmd --permanent --add-service={ smtp,submission,imaps,pop3s} & & sudo firewall-cmd --reload
- 连通性测试
- SMTP:telnet localhost 25 或 openssl s_client -connect localhost:587 -starttls smtp
- IMAP:openssl s_client -connect localhost:993
- 域名与 DNS
- 添加 A 记录:mail.yourdomain.com → 服务器IP
- 添加 MX 记录:yourdomain.com → 优先级 10 mail.yourdomain.com
- 验证:dig MX yourdomain.com;可进一步配置 SPF、DKIM、DMARC 记录以提升信誉与到达率。
三、PHP 网站发信配置
- 命令行与 PHP 内建 mail() 测试
- 确认 sendmail_path:在 /etc/php/*/cli/php.ini 或 /etc/php/*/fpm/php.ini 设置 sendmail_path = /usr/sbin/sendmail -t -i
- 简单测试脚本:
- Web 站点建议
- 生产环境优先使用 SMTP 提交(端口587 + STARTTLS) 与专用发信账号,在应用内配置 SMTP 主机、端口、用户名、密码;PHP 可用 PHPMailer 等库,便于 TLS、认证与日志追踪。
- 若使用 PHP-FPM,请同步修改其 php.ini 的 sendmail_path,并重启 FPM:sudo systemctl restart php-fpm*。
四、进阶与安全加固
- 端口与加密
- 对外仅开放 25(MTA 入站/转发)、587(Submission 提交)、993/995(IMAPS/POP3S);禁用明文端口 143/110 或强制 STARTTLS。
- 身份认证与投递
- Postfix 启用 SASL(通常与 Dovecot SASL 配合),Dovecot 提供 IMAP/POP3 与 LMTP 投递通道。
- 反垃圾与合规
- 配置 SPF(TXT 记录)、DKIM(OpenDKIM)、DMARC(TXT 记录),减少被判垃圾的概率;可结合 SpamAssassin、ClamAV、Fail2ban 等组件增强安全与可用性。
- 端口 25 放行提示
- 部分云厂商默认封禁 25 端口出站,需工单申请开通;或仅使用 587 提交。
- 监控与维护
- 关注 /var/log/mail.log、队列(postqueue -p)、TLS 证书到期(certbot renew),并定期审计用户与别名配置。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: LNMP环境下如何配置邮件服务
本文地址: https://pptw.com/jishu/759566.html
