Как получить ID вновь отправленного сообщения Gmail через API GMAIL с PHP и удалить или заархивировать это сообщение - PullRequest
0 голосов
/ 25 ноября 2018

Я хотел бы знать, как я могу получить идентификатор недавно отправленного электронного письма через API Gmail и удалить или заархивировать его.

Вот мой код для API Gmail:

$service = new Google_Service_Gmail($client);

    $fromemail = "some@mail.com";
    $strRawMessage = "From: from name <$fromemail> \r\n";
    $strRawMessage .= "To: ".$CONTACTS_FNAME." ".$CONTACTS_LNAME." <$RECIPIENT>\r\n";
    $strRawMessage .= 'Subject: =?utf-8?B?' . base64_encode($EMAILSUBJECT) . "?=\r\n";
    $strRawMessage .= "MIME-Version: 1.0\r\n";
    $strRawMessage .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $strRawMessage .= 'Content-Transfer-Encoding: 8bit' . "\r\n\r\n";
    $strRawMessage .= "$EMAILBODY\r\n";
    $mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
    $msg = new Google_Service_Gmail_Message();
    $msg->setRaw($mime);
    $service->users_messages->send("me", $msg);

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете получить идентификатор своих сообщений, используя Users.messages.list.Ответ будет выглядеть примерно так: users.messages Resource будет содержать id:

{
  "messages": [
    users.messages Resource
  ],
  "nextPageToken": string,
  "resultSizeEstimate": unsigned integer
}

. Для удаления сообщений вы можете использовать:

  • Users.messages.delete, который навсегда удаляет сообщения и не может быть отменен;
  • Users.messages.trash, который перемещает сообщения в корзину ;или
  • Используйте filtering , чтобы добавить метку TRASH в свои сообщения: action.addLabelIds=['TRASH']

Что касается архивации, вы можете использовать Filtering .Фильтры могут автоматически добавлять или удалять метки или пересылать электронные письма в проверенные псевдонимы на основе атрибутов или содержимого входящего сообщения.Если вы хотите, чтобы сообщения выходили из папки «Входящие» и архивировались непосредственно на одну из ваших специальных меток, вам необходимо удалить метку INBOX.

action.removeLabelIds=['INBOX']
...