在同一台服务器上配置邮件功能,主要分为两种场景:发送邮件(如通知、验证码)和接收邮件(如搭建企业邮箱)。以下是具体步骤和方案:
一、发送邮件配置(常见需求)
方案1:使用第三方SMTP服务(推荐)
适合网站/小程序发送事务性邮件(注册验证、通知等),无需自建邮件服务器,直接通过API或SMTP调用。
- 选择服务商:
- 国内:阿里云邮件推送、腾讯企业邮、SendCloud
- 国际:Amazon SES、SendGrid、Mailgun
- 配置步骤:
- 注册服务商并完成域名验证(添加DNS解析)。
- 获取SMTP密钥(用户名/密码或API Key)。
- 在网站/小程序后台配置SMTP信息:
SMTP_HOST=smtp.xxx.com SMTP_PORT=465/587 SMTP_USER=your_username SMTP_PASS=your_password FROM_EMAIL=noreply@yourdomain.com - 代码示例(Node.js):
const nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ host: 'smtp.xxx.com', port: 465, secure: true, auth: { user: 'user', pass: 'pass' } });
- 优点:避免IP被屏蔽,提升送达率,管理简单。
方案2:自建Postfix/Dovecot(仅适合技术测试)
不推荐生产环境使用,因为:
- 服务器IP可能被列入黑名单。
- 需配置反向DNS、SPF、DKIM、DMARC等。
- 维护复杂,易被用于垃圾邮件。
二、接收邮件配置(自建企业邮箱)
若需用自有域名接收邮件(如 contact@yourdomain.com),可部署邮件服务器:
- 安装组件(以Ubuntu为例):
# 安装Postfix(SMTP服务)、Dovecot(IMAP/POP3) sudo apt install postfix dovecot-imapd dovecot-pop3d - 配置DNS解析:
- A记录:
mail.yourdomain.com→ 服务器IP - MX记录:
yourdomain.com→mail.yourdomain.com - TXT记录:SPF、DKIM、DMARC(防垃圾邮件)
- A记录:
- 安全配置:
- 配置SSL证书(Let’s Encrypt)。
- 启用防火墙(开放25、465、587、993等端口)。
- 管理工具:
- 使用Roundcube(Web邮件客户端)或PostfixAdmin管理账户。
三、一体化方案(邮件收发完整配置)
- 使用开源套件:
- iRedMail:一键部署邮件服务器(含Web管理界面)。
- Mailcow:Docker化部署,集成反垃圾、防病毒。
- 步骤:
- 准备干净服务器(CentOS/Ubuntu)。
- 运行安装脚本,按提示配置域名、管理员账户。
- 安装后按提示配置DNS记录。
四、关键注意事项
- 端口开放:
- 发送:25(SMTP)、465(SMTPS)、587(STARTTLS)
- 接收:993(IMAPS)、995(POP3S)
- 需在云服务商安全组和服务器防火墙(如UFW)中放行。
- 反向DNS(rDNS):
- 联系云服务商为服务器IP设置反向解析,指向邮件域名。
- 防垃圾邮件措施:
- 必须配置SPF、DKIM、DMARC(通过DNS的TXT记录)。
- 示例SPF记录:
v=spf1 mx ip4:你的服务器IP ~all
- 监控与维护:
- 定期检查邮件队列:
mailq - 监控日志:
/var/log/mail.log
- 定期检查邮件队列:
五、推荐架构
- 多数场景:网站/小程序发送邮件 → 第三方SMTP服务(省心、可靠)。
- 企业自用邮箱:接收邮件 → iRedMail自建 + 发送邮件 → 第三方SMTP服务(混合方案,兼顾收发稳定性)。
快速检查清单
- 发送邮件:注册SendGrid/阿里云邮件推送 → 获取SMTP密钥 → 集成到代码。
- 接收邮件:部署iRedMail → 配置DNS解析 → 设置邮箱客户端。
- 安全:配置SPF/DKIM/DMARC,启用SSL/TLS。
根据实际需求选择方案,避免在发送邮件上重复造轮子,优先使用专业服务保障送达率。
CLOUD技术笔记