linux

如何在LNMP中设置邮件服务

小樊
37
2025-10-24 12:02:29
栏目: 编程语言

如何在LNMP中设置邮件服务

在LNMP(Linux+Nginx+MySQL+PHP)架构中设置邮件服务,需通过安装MTA(邮件传输代理)IMAP/POP3服务器及配置PHP邮件功能实现。以下是基于Postfix+Dovecot的经典配置流程(适用于Ubuntu/Debian系统,CentOS系统可将apt替换为yum):

1. 准备工作

2. 安装必要软件包

更新系统包列表并安装Postfix(MTA)、Dovecot(IMAP/POP3)及邮件工具:

sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils -y

安装过程中,Postfix会提示选择配置类型,选择“Internet Site”(适用于公开邮件服务器),并填写域名(如yourdomain.com)。

3. 配置Postfix(SMTP服务)

编辑Postfix主配置文件/etc/postfix/main.cf,修改以下关键参数:

sudo nano /etc/postfix/main.cf

保存后重启Postfix:

sudo systemctl restart postfix
sudo systemctl enable postfix  # 设置开机自启

4. 配置Dovecot(IMAP/POP3服务)

编辑Dovecot主配置文件/etc/dovecot/dovecot.conf,确保以下参数存在:

sudo nano /etc/dovecot/dovecot.conf
mail_location = maildir:~/Maildir  # 邮件存储路径(与Postfix一致)
protocols = imap pop3              # 启用IMAP/POP3协议

编辑SASL认证配置/etc/dovecot/conf.d/10-auth.conf,开启密码认证:

sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes       # 禁止明文认证(强制使用加密)
auth_mechanisms = plain login      # 支持PLAIN(加密)和LOGIN(加密)机制

编辑IMAP/SMTP监听配置/etc/dovecot/conf.d/10-master.conf,开启LMTP(用于邮件投递):

sudo nano /etc/dovecot/conf.d/10-master.conf
service lmtp {
  inet_listener lmtp {
    port = 24  # LMTP默认端口
  }
}

编辑SSL配置/etc/dovecot/conf.d/10-ssl.conf,启用SSL:

sudo nano /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

保存后重启Dovecot:

sudo systemctl restart dovecot
sudo systemctl enable dovecot  # 设置开机自启

5. 配置PHP邮件功能

若需通过PHP发送邮件(如WordPress找回密码、站内通知),需修改PHP配置文件:

sudo nano /etc/php/7.4/fpm/php.ini  # 根据PHP版本调整路径(如7.4/8.0)

找到sendmail_path参数,修改为:

sendmail_path = /usr/sbin/sendmail -t -i

保存后重启PHP-FPM:

sudo systemctl restart php7.4-fpm

6. 测试邮件服务

7. 防火墙配置

允许邮件服务端口通过防火墙(以UFW为例):

sudo ufw allow 25/tcp    # SMTP(邮件发送)
sudo ufw allow 143/tcp   # IMAP(邮件接收,明文)
sudo ufw allow 993/tcp   # IMAPS(邮件接收,加密)
sudo ufw allow 587/tcp   # Submission(邮件提交,加密)
sudo ufw allow 465/tcp   # SMTPS(邮件发送,加密)
sudo ufw enable          # 开启防火墙

注意事项

通过以上步骤,LNMP环境即可支持邮件发送与接收功能,满足网站站内通知、用户注册等场景需求。

0
看了该问题的人还看了