【发布时间】:2021-11-14 21:18:25
【问题描述】:
我正在尝试通过 Gmail API 发送一封简单的电子邮件,但由于符合 RFC822 的 To: undisclosed-recipients:; 标头而失败。在 To 标头中使用常规地址发送工作正常。 RFC822 消息由 PHPMailer 创建并使用preSend() 和getSentMIMEMessage() 恢复。
我做错了什么?
消息
Date: Tue, 21 Sep 2021 09:13:17 +0000
From: Rec1 <fictive1@gmail.com>
Cc: "Rec2 (fictive2@gmail.com)" <fictive2@gmail.com>
Bcc: fictive3@gmail.com
Message-ID: <vysFE9wLykAQc73VcxjiTfjPaZQJ5ge7jXqWbNeg@vps>
X-Mailer: PHPMailer 6.5.1 (https://github.com/PHPMailer/PHPMailer)
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_vysFE9wLykAQc73VcxjiTfjPaZQJ5ge7jXqWbNeg"
Content-Transfer-Encoding: 8bit
To: undisclosed-recipients:;
Subject: test
This is a multi-part message in MIME format.
--b1_vysFE9wLykAQc73VcxjiTfjPaZQJ5ge7jXqWbNeg
Content-Type: text/plain; charset=us-ascii
body
--b1_vysFE9wLykAQc73VcxjiTfjPaZQJ5ge7jXqWbNeg
Content-Type: text/html; charset=us-ascii
<div dir="ltr">body</div>
--b1_vysFE9wLykAQc73VcxjiTfjPaZQJ5ge7jXqWbNeg--
答案
{
"error": {
"code": 400,
"message": "Invalid To header",
"errors": [
{
"message": "Invalid To header",
"domain": "global",
"reason": "invalidArgument"
}
],
"status": "INVALID_ARGUMENT"
}
}
【问题讨论】:
-
尝试实际发送没有收件人地址、抄送和密件抄送地址的电子邮件。从 mail.google.com 网络界面发送相同的电子邮件可以正常工作,并且原始邮件可以通过
To: undisclosed-recipients:;标头到达目的地。 -
未公开收件人和密件抄送应该基本一致。使其在应用程序脚本(基本上类似于 gmail api)中与 MailApp 一起使用,只有密件抄送,没有“致收件人”。标头会将收件人的电子邮件显示为“收件人”,但仅显示他/她的电子邮件,而不是原始密件抄送收件人上的其他电子邮件。这不是一种选择吗?
-
PHPMailer 会自动添加
To: undisclosed-recipients:;是 AddAddress() 从未被调用过 -
对我来说看起来像是 gmail 中的一个错误。
-
知道如何正式举报吗?
标签: google-api gmail phpmailer gmail-api google-api-php-client