У меня есть рабочий код gmail api php, взятый из 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
следует добавить в шапку.
Да, добавьте к сообщению электронной почты заголовки «Кому», «Копия» или «Скрытая копия». В вашем случае это строка $ _POST [«message»] или, что еще лучше, какой-нибудь объект сообщения электронной почты, использующий стандартную библиотеку электронной почты php.
Увидеть:
https://developers.google.com/gmail/api/v1/reference/users/messages/send
https://developers.google.com/gmail/api/guides/sending
Вы должны передать необработанное письмо классу \ Google_Service_Gmail_Message ().
Это необработанное сообщение должно быть MIME-сообщением в кодировке base64. Почти все, что ты сделал.
НО: вам не нужно передавать тело письма (например, содержимое адреса электронной почты), а буквально все письмо — с заголовками. Так не $_POST["message"]
должен быть передан, но подготовленное письмо, которое имеет все необходимые заголовки, включая TO, FROM и т. д. Вот пример:
From: [email protected]
To: [email protected]
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, тело и т. д., а затем запрашиваете MIME с помощью одного такого метода, как этот $phpmailer->getSentMIMEMessage()
,