Я использую Swift_Message
для создания сообщения и Swift_Mime_ContentEncoder_Base64ContentEncoder
для кодирования сообщения, затем в Google_Service_Gmail_Message
Я устанавливаю закодированное сообщение методом ->setRaw()
.
У меня есть отправлял почту с этим в течение достаточно долгого времени, и он работал нормально. Со вчерашнего дня он перестал работать, и сообщение об ошибке говорит
"error": {
"code": 400,
"message": "Invalid value at 'message.raw' (TYPE_BYTES), Base64 decoding failed for \"[base64 encoded message with CRLF after every 76th character]\"",
"errors": [
{
"message": "Invalid value at 'message.raw' (TYPE_BYTES), Base64 decoding failed for \"[base64 encoded message with CRLF after every 76th character]\"",
"reason": "invalid"
}
],
"status": "INVALID_ARGUMENT"
}
Это работает, когда я удаляю CRLF. Есть мысли?
Ссылка: https://tools.ietf.org/html/rfc2822#section -2.1.1
Мой код
$msg = new Swift_Message();
$msg->setCharset('UTF-8')
->addTo(/*recipient*/)
->setSubject(/*sbject*/)
->addPart(/*text content*/, "text/plain")
->addPart(/*html content*/, "text/html");
$base64 = (new Swift_Mime_ContentEncoder_Base64ContentEncoder)->encodeString($msg->toString());
$base64_msg = rtrim(strtr($base64, '+/', '-_'), '=');
$mailer = $this->_getGmailService();// new Google_Service_Gmail(new Google_Client())
$message = new Google_Service_Gmail_Message();
$message->setRaw($base64_msg);
$message->setThreadId($threadId);
$mailer->users_messages->send('me', $message);