Go 通过进出口银行发送电子邮件(无smtp)?

Go 通过进出口银行发送电子邮件(无smtp)?,go,exim,gomail,Go,Exim,Gomail,我目前正在使用“gopkg.in/gomail.v2”发送包含以下内容的电子邮件 上述代码不向密件抄送电子邮件 因此,我记录了通过以下代码传递给exim-t的信息: buf:=新(字节.缓冲区) m、 WriteTo(buf)//是否应使用密件抄送写入整个消息 fmt.Println(buf.String()) 并且控制台记录: $ go run main.go Mime-Version: 1.0 Date: Mon, 23 Apr 2018 11:15:54 +0530 To: you@exa

我目前正在使用“gopkg.in/gomail.v2”发送包含以下内容的电子邮件

上述代码不向密件抄送电子邮件

因此,我记录了通过以下代码传递给exim-t的信息:

buf:=新(字节.缓冲区)

m、 WriteTo(buf)//是否应使用密件抄送写入整个消息

fmt.Println(buf.String())

并且控制台记录:

$ go run main.go
Mime-Version: 1.0
Date: Mon, 23 Apr 2018 11:15:54 +0530
To: you@example.com
Reply-To: me@example.com
Subject: Subject is to gomail to be discussed
From: me@example.com
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Why is bcc not getting populated
bcc没有进入exim-t我如何在不使用smtp的情况下实现这一点。

我认为这是(并且是它的变更日志条目)

尽管如此,上面的提交所修复的逻辑应该只适用于实际情况 发送消息,即当包实际与SMTP通信时 服务器(因为,自然地,
Bcc
不应该被转发超过处理消息的第一个MTA(甚至可能是第一个MDA-我懒得阅读RFC))

正在讨论的提交是指 它实际上提供了三种不同的方法来处理
Bcc
标题 领域。 所以我不知道是否真的要责怪软件包作者 这个改变与否

然而,即使对于
消息,看起来仍然像是将
Bcc
标题剥离掉。WriteTo
方法,依我看,这是一个错误。 我认为这是一个错误的原因如下:

  • 当包通过SMTP发送邮件时,它作为MTA工作 或MDA,并应遵守相关RFC为这些 邮件代理的类型
  • 当它只是将消息流式传输到MDA时(在您的情况下是Exim), 它作为一个纯客户端工作,处理
    Bcc
    标题字段 这显然不是它的事,而是应该委托给第一个 “真正的”邮件处理代理
我能找到的唯一相关问题/请求是 但它看起来像 代码在包含后被高度重构,所以我不知道 它是否引入了我认为是错误的东西

另见

TL;DR

我会在软件包的bug跟踪器中提交一个问题

(如果您愿意这样做,请将其链接到那里;谢谢。)

我认为它是(并且是它的变更日志条目)

尽管如此,上面的提交所修复的逻辑应该只适用于实际情况 发送消息,即当包实际与SMTP通信时 服务器(因为,自然地,
Bcc
不应该被转发超过处理消息的第一个MTA(甚至可能是第一个MDA-我懒得阅读RFC))

正在讨论的提交是指 它实际上提供了三种不同的方法来处理
Bcc
标题 领域。 所以我不知道是否真的要责怪软件包作者 这个改变与否

然而,即使对于
消息,看起来仍然像是将
Bcc
标题剥离掉。WriteTo
方法,依我看,这是一个错误。 我认为这是一个错误的原因如下:

  • 当包通过SMTP发送邮件时,它作为MTA工作 或MDA,并应遵守相关RFC为这些 邮件代理的类型
  • 当它只是将消息流式传输到MDA时(在您的情况下是Exim), 它作为一个纯客户端工作,处理
    Bcc
    标题字段 这显然不是它的事,而是应该委托给第一个 “真正的”邮件处理代理
我能找到的唯一相关问题/请求是 但它看起来像 代码在包含后被高度重构,所以我不知道 它是否引入了我认为是错误的东西

另见

TL;DR

我会在软件包的bug跟踪器中提交一个问题


(如果您愿意这样做,请将其链接到此处;谢谢。)

问题是由传递给进出口银行的
-t
选项引起的。发件人:

7.密件抄送:标题行 如果使用-t选项调用Exim,则从中获取收件人地址 消息的头,它会删除可能存在的任何Bcc:头行 (提取其地址后)。如果命令上不存在-t 行中,任何现有的密件抄送:都不会被删除


.

问题是由传递给exim的
-t
选项引起的。发件人:

7.密件抄送:标题行 如果使用-t选项调用Exim,则从中获取收件人地址 消息的头,它会删除可能存在的任何Bcc:头行 (提取其地址后)。如果命令上不存在-t 行中,任何现有的密件抄送:都不会被删除


.

JFTR没有提到
Bcc
头字段,所以我认为它纯粹是MTA的东西。那么,可能还有其他库吗?或者我应该循环联系人(是否为垃圾邮件/垃圾邮件?)如果您选择通过其SMTP或主提交(587)端口与本地运行的Exim实例对话,问题将完全消失,因为您可以在单个邮件提交会话期间自由地向SMTP发出任何(正常)数量的
RCPT命令。看起来让自己更加了解电子邮件的工作原理不会伤害到你。顺便说一句,你有没有向gomail提出过问题?为了让我之前的承诺更清楚,我认为这正是
gomail
Bcc
头字段的内容所做的,当它存在时,以及当它通过SMTP协议与MTA/MDA通信时(而不是将消息传递给
/usr/sbin/sendmail-t
等的stdin):它从
Bcc
字段获取所有地址,并为每个地址生成一个
RCPT TO
命令。JFTR没有提到
Bcc
头字段,因此我认为这纯粹是MTA的问题。那么可能还有其他库吗?或者我是否应该循环联系人(是否为垃圾邮件/垃圾邮件?)如果您选择通过SMTP或主提交(587)端口与本地运行的Exim实例对话,问题将完全消失,因为您可以自由向
SMTP公司发送任何(正常)号码的
RCPT
$ go run main.go
Mime-Version: 1.0
Date: Mon, 23 Apr 2018 11:15:54 +0530
To: you@example.com
Reply-To: me@example.com
Subject: Subject is to gomail to be discussed
From: me@example.com
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Why is bcc not getting populated