如何解决如何在 PHP 中格式化来自 gmail api 的正文?
我正在使用来自 Google Cloud Console Gmail API 的凭据和令牌从 gmail API 获取多个数据。在这里,我从 API 获取数据:
public function listMessages()
{
$service = new Google_Service_Gmail($this->client);
// Print the labels in the user's account.
$userId = 'me';
$pagetoken = NULL;
$messages = array();
$opt_param = array();
$i =0;
do{
if ($i == 5) break;
$i++;
try {
if ($pagetoken){
$opt_param['pagetoken'] = $pagetoken;
}
$messageResponse = $service->users_messages->listUsersMessages($userId,$opt_param);
if ($messageResponse->getMessages()){
$messages = array_merge($messages,$messageResponse->getMessages());
$pagetoken = $messageResponse->getNextPagetoken();
}
}
catch (Exception $e){
print 'An error occurred: '. $e->getMessage();
}
}while ($pagetoken);
$list = $service->users_messages->listUsersMessages('me',[
'maxResults' => 10
]);
$messageList = $list->getMessages();
$inBoxMessage = [];
foreach ($messageList as $message){
// print 'Message with ID: ' . $message->getId() . '<br/>';
$msg = $service->users_messages->get($userId,$message->getId());
$parts = $msg->getPayload()->getParts();
$message_id =$message->getId();
$headers = $msg->getPayload()->getHeaders();
$snippet = $msg->getSnippet();
foreach($headers as $single) {
if ($single->getName() == 'Subject') {
$message_subject = $single->getValue();
} elseif ($single->getName() == 'Date') {
$message_date = $single->getValue();
$message_date = date('M jS Y h:i A',strtotime($message_date));
} elseif ($single->getName() == 'From') {
$message_sender = $single->getValue();
$message_sender = str_replace('"',NULL,$message_sender);
$message_sender = str_replace("\'",$message_sender);
}
}
if (count($parts) > 0){
//$data = $msg->getPayload()->getParts()[0]->getBody()->getData();
$data = $parts[0]->getBody()->getData();
}
else{
$data = $msg->getPayload()->getBody()->getData();
}
$out = str_replace("-","+",$data);
$out = str_replace("_","/",$out);
$body = base64_decode($out);
$inBoxMessage[] = [
'messageId' => $message_id,'messageSnippet' => $snippet,'messageSubject' => $message_subject,'messageDate' => $message_date,'messageSender' => $message_sender,'messageBody' => $body
];
}
return $inBoxMessage;
}
}
我在这里展示它:
public function go()
{
$conn = new Connection();
if ($conn->is_connected()){
$gmail = new Gmail($conn->get_client());
return $gmail->listMessages();
}
else{
return $conn->get_unathuenticated_data();
}
}
$ID = $_GET['id'];
$Main = new Main();
$aData = $Main->go();
<div class="container mt-5">
<?PHP print $aData[$ID]['messageBody']; ?>
</div>
但是身体是这样来的:
我希望它的格式很好,就像在 Gmail 中一样。请问我该怎么做?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。