【发布时间】:2020-01-21 13:07:53
【问题描述】:
在 PHP 中,我使用 Gmail api 获取客户的 gmail 收件箱。
使用
Array ( ['maxResults'] => 50, ['labelIds'] => INBOX, ['q'] => is:unread)
我正在邮箱/gmail 中搜索未读电子邮件,但我收到了 1 封标有
的电子邮件[labelIds] => Array([0] => Label_2 [1] => SENT).
gmail 如何将此电子邮件标识为unread 以及基于什么我可以突出显示此unread 电子邮件?我的第二个问题是电子邮件标有SENT 怎么会出现在INBOX 中?
$service = new Google_Service_Gmail($client);
$batch = new Google_Http_Batch($client);
$userId='me';
$threads = array();
$pageToken = NULL;
$param = array();
$getPageToken = $getParam('pageToken');
if ($getPageToken && $getPageToken!='') {
$param['pageToken'] = $getPageToken;
$pageToken = $getPageToken;
}
if($getParam('limit'))
$param['maxResults']=$getParam('limit');
else
$param['maxResults'] = 50;
if($getParam('in')) {
$this->view->in=$getParam('in');
$param['labelIds'] = strtoupper($this->view->in);
}
else
$param['labelIds'] = 'INBOX';
$search = "";
$read = $getParam('read_status');
if($read && (@$read=='read'||$read=='unread'))
$search = 'is:'.$read;
if($getParam('search')) {
$this->view->search = $getParam('search');
$search .= " ".$this->view->search;
}
if($search)
$param['q'] = $search;
$threadsResponse=$this->gmailApi->get_threads($service,$userId,$param);
if($threadsResponse) {
$threads=$threadsResponse->getThreads();
$this->view->next_page=$threadsResponse->getNextPageToken();
$client->setUseBatch(true);
foreach ($threads as $key => $val) {
$thread = $service->users_threads->get($userId, $val->id,['format' => 'full', 'metadataHeaders' => ['From','Date','Subject']]);
$batch->add($thread, "mail-".$val->id);
}
$results = $batch->execute();
$threads=$this->gmailApi->get_batch_messages($service,$userId,$results);
谁能告诉我这是不是here(https://issuetracker.google.com/issues/135166258)产生的问题
【问题讨论】:
-
以后有没有机会发布您的 PHP 代码来帮助他人?
-
使用 Try this API 进行测试以了解问题是源自请求本身还是它在 PHP 中的实现总是很有用:developers.google.com/gmail/api/v1/reference/users/messages/…
-
@ziganotschka 如何使用
Try this API我没有登录详细信息 -
@softech 您可以使用用于访问收件箱的同一 Google 或 Gmail 帐户登录
-
@ziganotschka 这个问题出在一个客户的 gmail 帐户中,我无法将其复制到我的 gmail 中,如果我使用用于访问我的收件箱的同一个 Google 或 Gmail 帐户登录,那么它会给我的收件箱