when I use the api to answer emails, everything works but if I add an attachment it marks error
Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidArgument",
"message": "'raw' RFC822 payload message string or uploading message via /upload/* URL required"
}
],
"code": 400,
"message": "'raw' RFC822 payload message string or uploading message via /upload/* URL required"
}
}
' in C:\xampp\htdocs\crm\vendor\google\apiclient\src\Google\Http\REST.php:118
Stack trace:
#0 C:\xampp\htdocs\crm\vendor\google\apiclient\src\Google\Http\REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...')
#1 [internal function]: Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...')
#2 C:\xampp\htdocs\crm\vendor\google\apiclient\src\Google\Task\Runner.php(176): call_user_func_array(Array, Array)
#3 C:\xampp\htdocs\crm\vendor\google\apiclient\src\Google\Http\REST.php(58): Google_Task_Runner->run( in C:\xampp\htdocs\crm\vendor\google\apiclient\src\Google\Http\REST.php on line 118
This is my code to both send and reply,
if (empty($attachments)) {
$mime = base64url_encode($mime);
$message->setRaw($mime);
$result = $service->users_messages->send('me', $message);
}else{
$chunkSizeBytes = 1 * 1024 * 1024;
$size = strlen($mime);
$status = false;
$client->setDefer(true);
$result = $service->users_messages->send('me', $message, [ 'uploadType' => 'multipart']);
$media = new Google_Http_MediaFileUpload(
$client,
$result,
'message/rfc822',
$mime,
true,
$chunkSizeBytes
);
$media->setFileSize($size);
while (!$status ){
$status = $media->nextChunk();
}
$client->setDefer(false);
}
I've been doing tests the error is in
$chunkSizeBytes = 1 * 1024 * 1024;
$size = strlen($mime);
$status = false;
$client->setDefer(true);
$result = $service->users_messages->send('me', $message, [ 'uploadType' => 'multipart']);
$media = new Google_Http_MediaFileUpload(
$client,
$result,
'message/rfc822',
$mime,
true,
$chunkSizeBytes
);
$media->setFileSize($size);
while (!$status ){
$status = $media->nextChunk();
}
$client->setDefer(false);
since if I use
$mime = base64url_encode($mime);
$message->setRaw($mime);
$result = $service->users_messages->send('me', $message);
the attachment arrives without problems the detail here is fails when they are large files fails