Gmail API не читает полную электронную почту

Итак, я использую Pub / Sub subsrition и использую Push в URL-адресе конечной точки для чтения электронной почты из gmail.

Он отлично работает для коротких электронных писем, но один раз, когда электронное письмо содержит более майбер200 символов, он читает только первые 100 символов.

Вот снимок экрана на моей консоли Google API

введите описание изображения здесь

и вот код в файле получателя

$ch = curl_init('https://www.googleapis.com/gmail/v1/users/me/messages?labelIds=Label_56&maxResults=5');

curl_setopt_array($ch, array(
CURLOPT_POST => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer '. $tokenval,
'Content-Type: application/json',
),
));

// execute request and get response
$result = curl_exec($ch);


$allmessages = json_decode($result);
$allmessage = $allmessages->messages;


for($i=0;$i<count( $allmessage);$i++)
{
$checkoldmsgid =  $this->Customer_m->getCount('messages',array('massageid'=>$allmessage[$i]->id ));

if( $checkoldmsgid ==0)
{
$ch = curl_init('https://www.googleapis.com/gmail/v1/users/me/messages/'.$allmessage[$i]->id);

curl_setopt_array($ch, array(
CURLOPT_POST => false,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer '. $tokenval,
'Content-Type: application/json'
),
));

// execute request and get response
$resultm = curl_exec($ch);
$msgval = json_decode($resultm);

$sendernum =explode('@',$msgval->payload->headers[19]->value);
$recivernum =explode('@',$msgval->payload->headers[0]->value);
$createdat =   date('Y-m-d H:i:s',strtotime($msgval->payload->headers[18]->value));

Есть ли строка кода, которую мне нужно ввести, чтобы прочитать полные электронные письма?

0

Решение

Согласно документация, Вы можете передать необязательный параметр для формата:

Допустимые значения:

«полный»: возвращает полные данные сообщения электронной почты с содержимым тела, проанализированным в поле полезной нагрузки; необработанное поле не используется. (дефолт)

«метаданные»: возвращает только идентификатор сообщения электронной почты, метки и заголовки сообщения.

«минимальный»: возвращает только идентификатор сообщения электронной почты и метки; не возвращает заголовки электронной почты, текст или полезную нагрузку.

«raw»: возвращает полные данные сообщения электронной почты с содержимым тела в необработанном поле в виде строки в кодировке base64url; поле полезной нагрузки не используется.

Попробуйте изменить конечную точку, чтобы включить format параметр:

$id = $allmessage[$i]->id;
$endpoint = "https://www.googleapis.com/gmail/v1/users/me/messages/$id?format=full";
$ch = curl_init($endpoint);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]