使用 587 或 465 端口自建 SMTP 服务

使用 587465 端口自建 SMTP 服务,可以通过配置 Postfix 或其他邮件服务器实现。以下是以 Postfix 为例的完整搭建和配置步骤。


步骤 1:安装 Postfix

在 Linux 服务器上安装 Postfix:

sudo apt update
sudo apt install postfix

在安装过程中选择以下选项:

  1. Postfix 配置类型:选择“Internet Site”。
  2. 系统邮件名称:输入你的域名,例如 example.com

步骤 2:配置 Postfix 使用 587 或 465 端口

编辑 Postfix 的主配置文件 /etc/postfix/main.cf

sudo nano /etc/postfix/main.cf

添加或修改以下设置:

# 基础设置
myhostname = mail.example.com  # 设置主机名
mydomain = example.com         # 设置邮件域名
myorigin = $mydomain           # 邮件发件地址的默认域名
inet_interfaces = all          # 监听所有网络接口
inet_protocols = ipv4          # 仅启用 IPv4(如果需要 IPv6,可设置为 "all")

# TLS 加密
smtpd_tls_cert_file=/etc/ssl/certs/your_cert.pem  # SSL 证书路径
smtpd_tls_key_file=/etc/ssl/private/your_key.pem  # SSL 私钥路径
smtpd_tls_security_level=may                      # 允许 TLS 安全连接
smtpd_tls_auth_only=yes                           # 仅支持加密认证
smtpd_use_tls=yes

# 允许的连接端口
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject

可选:启用 SMTPS(465 端口)

如果需要支持 465 端口,在 /etc/postfix/master.cf 中添加以下内容:

smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject

步骤 3:安装并配置 SASL 认证

  1. 安装 SASL:

    sudo apt install libsasl2-modules sasl2-bin
    
  2. 编辑 /etc/postfix/sasl/smtpd.conf

    sudo nano /etc/postfix/sasl/smtpd.conf
    

    添加以下内容:

    pwcheck_method = saslauthd
    mech_list = plain login
    
  3. 启用并启动 SASL 服务:

    sudo systemctl enable saslauthd
    sudo systemctl start saslauthd
    
  4. 将 Postfix 添加到 SASL 组:

    sudo adduser postfix sasl
    

步骤 4:生成 SSL 证书

如果没有 SSL 证书,可以使用 Let’s Encrypt 或自签名证书:

使用 Let’s Encrypt

sudo apt install certbot python3-certbot-apache
sudo certbot certonly --standalone -d mail.example.com

证书路径通常为:

  • 证书:/etc/letsencrypt/live/mail.example.com/fullchain.pem
  • 私钥:/etc/letsencrypt/live/mail.example.com/privkey.pem

步骤 5:重启服务

完成配置后,重启 Postfix 和 SASL 服务:

sudo systemctl restart postfix
sudo systemctl restart saslauthd

步骤 6:测试 SMTP 服务

使用工具(如 telnetopenssl s_client)测试 SMTP 服务:

测试 587 端口

openssl s_client -starttls smtp -connect mail.example.com:587

测试 465 端口

openssl s_client -connect mail.example.com:465

输入以下命令以验证是否可以正常发送邮件:

EHLO mail.example.com
AUTH LOGIN
(输入 Base64 编码的用户名和密码)
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
DATA
Subject: Test Mail
This is a test mail.
.
QUIT

步骤 7:配置邮件客户端

在邮件客户端中配置以下 SMTP 信息:

  • SMTP 服务器mail.example.com
  • 端口:587(或 465)
  • 加密:STARTTLS(587)或 SSL/TLS(465)
  • 用户名:完整的邮箱地址(例如 [email protected]
  • 密码:对应邮箱的密码

注意事项

  1. DNS 记录设置

    • 配置 MX 记录:mail.example.com
    • 配置 SPF 记录:v=spf1 mx -all
    • 配置 DKIMDMARC 记录以提高邮件可靠性。
  2. 端口限制

    • 确保 587 和 465 端口在防火墙或云服务平台上已开放。
  3. 调试问题: 查看 Postfix 日志以诊断问题:

    sudo tail -f /var/log/mail.log
    
© 版权声明
THE END
喜欢就支持一下吧
点赞344 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容