使用Gmail API检索HTML格式的电子邮件/消息



是否可以使用Gmail API在html-format中检索消息/电子邮件?

到目前为止,我可以阅读完整的电子邮件/消息,但只能阅读纯文本。例如,我想在网站上以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;
}
}

//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;
}

最新更新