我从https://github.com/google/google-api-php-client/
我可以使用以下代码发送电子邮件,但没有收件人。在gmail发送的项目中我也可以看到发送的消息!
$mime = rtrim(strtr(base64_encode($_POST["message"]), '+/', '-_'), '=');
$msg = new Google_Service_Gmail_Message();
$msg->setRaw($mime);
$x = $service->users_messages->send("me", $msg);
如何添加收件人电子邮件地址?在几篇帖子中,我读到To
应添加到标题中。
答案 0 :(得分:0)
是的,在电子邮件中添加“收件人”,“抄送”或“密件抄送”标头,以便将电子邮件发送给人员。在你的情况下,$ _POST [“message”]字符串甚至更好的是使用标准php电子邮件库的一些电子邮件消息对象。
请参阅: https://developers.google.com/gmail/api/v1/reference/users/messages/send https://developers.google.com/gmail/api/guides/sending
答案 1 :(得分:0)
您应将原始电子邮件传递给\ Google_Service_Gmail_Message()类。 此原始消息应为base64编码的mime消息。您所做的几乎所有事情。
但:您无需传递电子邮件正文(如电子邮件地址的内容),而是传递整个电子邮件-带标题。因此,不应传递$_POST["message"]
,而应传递一封准备好的电子邮件,其中包含所有必需的标头,包括TO,FROM等。这是一个示例:
From: sender@example.com
To: recipient@example.com
Subject: YOUR CUSTOM SUBJECT
Content-Type: text/plain; charset=UTF-8
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary=5ae50a40c56153a0ca99d08aaf8f99d53f63981962d4f199b2339614636b
--5ae50a40c56153a0ca99d08aaf8f99d53f63981962d4f199b2339614636b
YOUR CUSTOM EMAIL CONTENT GOES HERE. Might be a mix of html and plain text.
--5ae50a40c56153a0ca99d08aaf8f99d53f63981962d4f199b2339614636b--
最好使用类似PHPMailer类的东西为您准备电子邮件的整个MIME版本,在这里您只需将所需的数据,主题,FROM,TO,正文等传递给公共方法,然后使用诸如$phpmailer->getSentMIMEMessage()
这样的单个方法来请求MIME。