Skip to content

直接发送模式配置指南

Go Mail Server 支持直接发送模式,允许系统直接将邮件发送到收件人的邮件服务器,而无需经过中间的SMTP服务器。这种模式可以提高送达率,减少依赖,并可能降低邮件被标记为垃圾邮件的几率。

配置直接发送模式

config.json 中添加或修改以下配置:

json
{
  // ...其他配置项...
  
  "directDelivery": {
    "enabled": true,              // 启用直接发送模式
    "ehloDomain": "example.com",  // 用于EHLO命令的域名,通常是您的域名
    "insecureSkipVerify": false,  // 是否跳过TLS验证(生产环境建议设为false)
    "retryCount": 3               // 发送失败时的重试次数
  },
  
  // ...其他配置项...
}

发送流程说明

启用直接发送模式后,邮件处理流程将按照以下顺序进行:

  1. 查找MX记录:系统解析收件人邮箱域名的MX记录,获取目标邮件服务器地址
  2. 尝试直接连接:系统尝试连接到目标邮件服务器
  3. 发送邮件:如果连接成功,直接将邮件发送到目标服务器
  4. 备选方案:如果直接发送失败,系统会尝试使用配置的SMTP转发方式
  5. 最终保障:如果所有发送尝试均失败,系统会将邮件保存在本地

直接发送的优势

  1. 减少依赖:不依赖第三方SMTP服务,提高系统可靠性
  2. 提高送达率:直接发送可能降低被标记为垃圾邮件的几率
  3. 配置简单:无需设置和维护SMTP服务器凭据
  4. 成本效益:无需支付第三方SMTP服务费用

直接发送的注意事项

直接发送邮件虽然有诸多优势,但也有一些注意事项:

  1. IP信誉至关重要

    • 确保您的服务器IP没有被列入黑名单
    • 稳定的服务器IP地址更有利于建立良好的发送信誉
    • 考虑使用专用IP而非共享IP
  2. DNS配置必不可少

    • 正确配置SPF记录
    • 配置DKIM签名(强烈推荐)
    • 设置DMARC策略
  3. 发送量控制

    • 避免短时间内发送大量邮件
    • 使用系统内置的速率限制功能
    • 新IP应该从小批量发送开始,逐渐增加
  4. 监控送达情况

    • 定期检查发送日志
    • 设置邮件退回通知
    • 关注垃圾邮件报告

优化直接发送

为了获得最佳的直接发送效果,建议进行以下优化:

  1. 启用DKIM签名

    json
    "dkim": {
      "enabled": true,
      "domain": "example.com",
      "selector": "mail",
      "privateKeyPath": "keys/example.com/mail.private"
    }
  2. 配置正确的EHLO域名

    • ehloDomain 应设置为与您的发件人地址域名匹配的域名
    • 确保该域名有正确的DNS记录
  3. 控制发送频率

    json
    "rateLimits": {
      "enabled": true,
      "maxPerHour": 300,
      "maxPerDay": 1200
    }
  4. 仔细监控失败情况

    • 定期检查 emails/failed 目录
    • 分析失败原因并进行相应调整

故障排查

如果直接发送模式遇到问题,可以检查以下几点:

  1. 日志中的错误信息

    • 查找与 "尝试直接发送邮件" 相关的日志
    • 查看特定域名的MX记录解析是否成功
    • 检查连接或认证错误
  2. 网络连接问题

    • 确保服务器可以访问外部25端口(许多云服务提供商默认阻止)
    • 检查防火墙设置
    • 验证DNS服务是否正常工作
  3. DNS配置验证

    • 使用 dig MX example.com 验证MX记录
    • 确认SPF记录包含您的发送服务器
    • 验证DKIM记录格式是否正确
  4. 临时禁用直接发送

    • 如果问题无法解决,可以临时禁用直接发送模式
    • "enabled": false 设置在 directDelivery 配置中
    • 系统将回退到使用配置的SMTP转发

基于 MIT 许可证发布