PHP Gmail Api - 删除邮件
PHP Gmail Api - Delete Mail
gmail邮件阅读后如何删除?尝试到处寻找,但找不到适合我的解决方案。目前下面的代码读取主题和正文,我想在阅读后立即删除该特定邮件
$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
$msg = $service->users_messages->get($userId, $message->getId());
$headers = $msg->getPayload()->getHeaders();
$subject = array_values(array_filter($headers, function($k){
return $k['name'] == 'Subject';
}));
$subject = $subject[0]->getValue();
$body = base64_decode(var_export($msg->payload->body->data, true)));
}
我相信你的目标和情况如下。
- 您想使用 googleapis 为 php 删除邮件。
- 您已经能够获取和放置 Gmail 的值 API。
本例使用GmailAPI中的“users.messages.delete”方法API。
示例脚本:
当你的脚本修改后,变成如下。
$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
$msg = $service->users_messages->get($userId, $message->getId());
$headers = $msg->getPayload()->getHeaders();
$subject = array_values(array_filter($headers, function($k){
return $k['name'] == 'Subject';
}));
$subject = $subject[0]->getValue();
$body = base64_decode(var_export($msg->payload->body->data, true)));
$service->users_messages->delete($userId, $message->getId()); // Added
}
- “users.messages.delete”的方法returns 没有值。请注意这一点。
注:
在这种情况下,假设$service
可以用于删除消息。如果出现范围相关的错误,请添加https://mail.google.com/
的范围并重新测试。但是当范围发生变化时,请将包含访问令牌和刷新令牌的文件重新授权。这样,新的范围就会反映到访问令牌和刷新令牌中。请注意这一点。
- 例如,如果在您当前的脚本中,作用域的使用类似于
$client->setScopes(Google_Service_Gmail::GMAIL_READONLY);
,请将其修改为$client->setScopes("https://mail.google.com/");
。并再次授权。
重要
- 在此修改后的脚本中,消息被完全删除。所以我想建议使用示例消息对其进行测试。请注意这一点。
参考:
gmail邮件阅读后如何删除?尝试到处寻找,但找不到适合我的解决方案。目前下面的代码读取主题和正文,我想在阅读后立即删除该特定邮件
$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
$msg = $service->users_messages->get($userId, $message->getId());
$headers = $msg->getPayload()->getHeaders();
$subject = array_values(array_filter($headers, function($k){
return $k['name'] == 'Subject';
}));
$subject = $subject[0]->getValue();
$body = base64_decode(var_export($msg->payload->body->data, true)));
}
我相信你的目标和情况如下。
- 您想使用 googleapis 为 php 删除邮件。
- 您已经能够获取和放置 Gmail 的值 API。
本例使用GmailAPI中的“users.messages.delete”方法API。
示例脚本:
当你的脚本修改后,变成如下。
$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
$msg = $service->users_messages->get($userId, $message->getId());
$headers = $msg->getPayload()->getHeaders();
$subject = array_values(array_filter($headers, function($k){
return $k['name'] == 'Subject';
}));
$subject = $subject[0]->getValue();
$body = base64_decode(var_export($msg->payload->body->data, true)));
$service->users_messages->delete($userId, $message->getId()); // Added
}
- “users.messages.delete”的方法returns 没有值。请注意这一点。
注:
在这种情况下,假设
$service
可以用于删除消息。如果出现范围相关的错误,请添加https://mail.google.com/
的范围并重新测试。但是当范围发生变化时,请将包含访问令牌和刷新令牌的文件重新授权。这样,新的范围就会反映到访问令牌和刷新令牌中。请注意这一点。- 例如,如果在您当前的脚本中,作用域的使用类似于
$client->setScopes(Google_Service_Gmail::GMAIL_READONLY);
,请将其修改为$client->setScopes("https://mail.google.com/");
。并再次授权。
- 例如,如果在您当前的脚本中,作用域的使用类似于
重要
- 在此修改后的脚本中,消息被完全删除。所以我想建议使用示例消息对其进行测试。请注意这一点。