Gmail REST API - 如何在PHP中"Create the email content in some convenient way"



Gmail文档说我需要create a MIME email messages compliant with RFC 2822 . - https://developers.google.com/gmail/api/guides/sending

鉴于我只有一个"收件人"地址,主题和纯文本正文 - 使用SwiftMailer(或替代包)实现此目的的最简单方法是什么?

如果是这样,我如何确保 SwiftMailer 的输出适合 Gmail REST API?

我将使用此函数对其进行 Base64URL 编码:

function base64url_encode($data) {
    return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}

SwiftMailer 只是工作:

    //create MIME message using SwiftMailer
    $msg = Swift_Message::newInstance()
        ->setTo(array($data['email']))
        ->setSubject($data['subject'])
        ->setBody($data['message']);
    //base64URL encode message
    $msg = base64url_encode($msg);
    $client = new Google_Client();
    $client->setAccessToken($_COOKIE['access_token']);
    $service = new Google_Service_Gmail($client);
    $message = new Google_Service_Gmail_Message();
    $message->setRaw($msg);
    try {
            $message = $service->users_messages->send('me', $message);
            print 'Message with ID: ' . $message->getId() . ' sent.';
            return $message;
        } catch (Exception $e) {
            print 'An error occurred: ' . $e->getMessage();
        }

试试这个:

$mime = $message->toString();

然后

$msg = base64url_encode($msg);

相关内容

最新更新