将密件抄送添加到通过PHP通过Gmail API发送的电子邮件中

时间:2018-07-20 17:32:43

标签: php email gmail-api bcc

因此,我遵循的是所有guide,是的,我能够发送电子邮件,但是我试图添加密件抄送电子邮件,因为它的清单很长,我不希望它们显示在电子邮件的收件人列表。

使用PHPMailer发送时,一切都很好,这个question似乎可以解决我的问题,但是尽管我尝试了很多,但都没有找到答案。

我现在的做法:

$client = getClient();
if (is_string($client)){
    exit ($client);
}
$service = new Google_Service_Gmail($client);
$user = 'me';

$strSubject = 'Correo GMail API' . date('M d, Y h:i:s A');
$strRawMessage = "From: Lauro Campos<jlcampost@concredito.com.mx>\r\n";
$strRawMessage .= "To: Metro Gio <greyeso@concredito.com.mx>\r\n";
$strRawMessage .= "Bcc: <cjlindorv@concredito.com.mx>,<cfgonzalezr@concredito.com.mx>,<jlcampost@concredito.com.mx>\r\n";
$strRawMessage .= 'Subject: =?utf-8?B?' . base64_encode($strSubject) . "?=\r\n";
$strRawMessage .= "MIME-Version: 1.0\r\n";
$strRawMessage .= "Content-Type: text/html; charset=utf-8\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$strRawMessage .= "mensaje <b>de prueba!\r\n";
// The message needs to be encoded in Base64URL
$mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
$msg = new Google_Service_Gmail_Message();
$msg->setRaw($mime);
//The special value **me** can be used to indicate the authenticated user.
$service->users_messages->send("me", $msg);

电子邮件确实发送了,每个收件人都收到了电子邮件,但密件抄送在电子邮件收件人列表中显示为:

para Metro, bcc: cjlindorv, bcc: cfgonzalezr, bcc: mí

当我使用PHPMailer通过SMTP发送并使用email-> AddBCC()方法时,在电子邮件中仅显示在$ email-> AddAddress()方法中添加的地址:

para Metro

我想做同样的事情,但是使用Gmail API,就像我说的那样,这个question似乎有答案,但是我需要更多信息。

他说:

You didn't provide your GMAIL API code but it might follow this outline:

$message = new Message();

# construct message using raw data from PHPMailer
$message->setSubjectBody(...);
$message->setTextBody(...);
$message->setHtmlBody(...);

# *** add the BCC recipients here ***
$message->addBcc("secret.recipient@google.com");

# send the message
$message->send();

我认为他正在谈论的Message()类将是Google_Service_Gmail_Message(),但其中不包含此类方法,这是我遗漏的地方。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

对于任何其他认为他也面临相同问题的人,请让我告诉您没有问题,一切正常。

代码正常运行,但是,如果您像我一样做,并且您正在使用Gmail帐户发送电子邮件并将自己包括在收件人中,则在收到电子邮件时,您可以将密件抄送列表视为电子邮件来自您的帐户。

我只是在@ficuscr在评论中问了他的问题后才想到这一点,然后我去和“收件人”收件人确认他是否可以看到密件抄送收件人,他看不到,其他Bcc收件人也看不到。

我希望这可以帮助某人节省几个小时的研究。