You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过`exim -t`(sendmail兼容模式)发送密送邮件?

在Golang中通过Exim -t 模式发送带密送(BCC)的邮件

嘿,这个问题其实很好解决!当你用Exim的-t参数(sendmail兼容模式)发邮件时,处理BCC的核心就是正确构造邮件头,剩下的Exim会帮你搞定。

先搞懂exim -t的工作逻辑

-t参数的作用是让Exim从邮件的头信息里自动提取收件人:包括To、CC,还有**BCC**地址。而且它会自动在最终发送给收件人的邮件内容里移除BCC头,保证密送的隐私性——收件人完全看不到谁被密送了。

结合你的Golang代码实现BCC

你的submitMail函数不需要做任何修改!只需要在构造gomail.Message的时候,添加BCC地址就行。用gomail库的SetBcc(或AddBcc)方法最方便:

// 构造带密送的邮件示例
func main() {
    m := gomail.NewMessage()
    m.SetHeader("From", "your@domain.com")
    m.SetHeader("To", "primary-recipient@example.com")
    m.SetHeader("Cc", "cc-recipient@example.com")
    // 添加密送地址,可以传多个
    m.SetHeader("Bcc", "bcc-first@example.com", "bcc-second@example.com")
    
    m.SetHeader("Subject", "测试密送功能")
    m.SetBody("text/plain", "这是一封通过Exim -t发送的密送邮件")

    // 调用你写的submitMail函数发送
    if err := submitMail(m); err != nil {
        log.Fatal(err)
    }
}

关键注意事项

  • 隐私保障:不用怕BCC头会泄露给收件人,Exim的-t模式会自动从最终发出的邮件内容里剔除BCC字段,只有Exim后台知道这些密送地址。
  • 方法选择:如果需要多次添加BCC地址,用AddBcc方法(比如m.AddBcc("another-bcc@example.com")),而SetBcc会覆盖之前设置的BCC列表。
  • Exim配置:默认情况下Exim是支持BCC的,除非你的服务器有特殊的ACL限制,这种情况需要检查Exim的配置文件。

这样一来,你的代码就能完美支持通过Exim -t发送密送邮件啦!

内容的提问来源于stack exchange,提问作者Garvit Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:48:41