Gmail REST API - 如何在 PHP 中“以某种方便的方式创建电子邮件内容”

Mik*_*ell 2 php swiftmailer gmail-api

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), '+/', '-_'), '=');
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ell 5

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();
        }
Run Code Online (Sandbox Code Playgroud)