【问题标题】:Retrieve email/message in HTML-format using Gmail API使用 Gmail API 以 HTML 格式检索电子邮件/消息
【发布时间】:2020-11-16 18:18:34
【问题描述】:

是否可以使用 Gmail API 检索 html 格式的邮件/电子邮件?

到目前为止,我可以阅读完整的电子邮件/消息,但只能阅读纯文本。例如,我想在 html 格式的网站上查看它。

这是我目前的代码:

$gmail = new Google_Service_Gmail($client);
$userId = "myemail@gmail.com";

$list = $gmail->users_messages->listUsersMessages('me', ['maxResults' => 1000]);

while ($list->getMessages() != null) {   
    foreach ($list->getMessages() as $mlist) {               
        $message_id = $mlist->id;   
        $optParamsGet2['format'] = 'full';
        $single_message = $gmail->users_messages->get('me', $message_id, $optParamsGet2);


        $threadId = $single_message->getThreadId();
        $payload = $single_message->getPayload();
        $headers = $payload->getHeaders();
        $parts = $payload->getParts();
        $body = $parts[0]['body'];
        $rawData = $body->data;
        $sanitizedData = strtr($rawData,'-_', '+/');
        $decodedMessage = base64_decode($sanitizedData);
        print($decodedMessage);

    }

    if ($list->getNextPageToken() != null) {
        $pageToken = $list->getNextPageToken();
        $list = $gmail->users_messages->listUsersMessages('me', ['pageToken' => $pageToken, 'maxResults' => 1000]);
    } else 
    {
        break;
    }
}

【问题讨论】:

  • 这些消息与 html 正文一起发送到哪里?

标签: php gmail-api google-api-php-client


【解决方案1】:

// Parts [0] - 用于文本/纯文本

$parts = $payload->getParts();
$body = $parts[0]['body'];

// 部分 [1] - 用于 text/html

$parts = $payload->getParts();
$body = $parts[1]['body'];

例子:

public function getHTMLbody()
    {
        $parts = $this->message->getPayload()->getParts();
        if (empty($parts)) {
            $body = base64_decode(strtr($this->message->getPayload()->body->data, '-_', '+/'));
        } else {
            $body = base64_decode(strtr($parts[1]->body->data, '-_', '+/'));
        }
        return $body;
    }

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 2019-04-01
    • 2017-06-28
    • 2017-03-07
    • 2020-09-27
    • 2015-01-02
    • 2015-12-24
    • 2018-02-03
    • 2018-12-31
    相关资源
    最近更新 更多