2016-07-20 2 views
0

Google API PHP 클라이언트를 사용하고 있습니다. 한 계정에서 다른 계정으로 대량 메시지를 가져 오는 프로그램을 작성 중입니다. 가져 오려면, 나는 선을 사용하고 있습니다 :Gmail API 가져 오기 - 오류 413 요청 엔터티가 너무 큼

$service->users_messages->import('me', $message, $options); 

..where의 $ 메시지가 $service->users_messages->get()에서 오는 원시 메시지입니다.

먼저 프로그램은 하나의 계정에서 메시지 목록을 가져옵니다. 사용자가 가져 오려는 메시지를 선택한 다음 가져 오기 단추를 클릭합니다. 가져 오기는 선택된 메시지를 반복하고 제대로 작동하지만 큰 첨부 파일이 포함 된 메시지가 있습니다. 이 메시지는 실패하고 오류 413 - 요청 엔터티가 너무 큽니다.

업로드 유형이 멀티 파트 여야한다는 것을 알 필요가 있습니다. Google API PHP 클라이언트를 사용하고 있는데이 업로드 유형을 추가 할 수있는 메소드, 클래스 또는 옵션이 표시되지 않습니다.

어떤 제안 사항이 도움이 될 것입니다. 감사.

답변

0

변수 $ message를 mail with attachment 코드 스 니펫으로 설정해보십시오.

$strRawMessage .= "\r\n--{$boundary}\r\n"; 
$strRawMessage .= 'Content-Type: '. $mimeType .'; name="'. $fileName .'";' . "\r\n"; 
$strRawMessage .= 'Content-ID: <' . $strSesFromEmail . '>' . "\r\n"; 
$strRawMessage .= 'Content-Description: ' . $fileName . ';' . "\r\n"; 
$strRawMessage .= 'Content-Disposition: attachment; filename="' . $fileName . '"; size=' . filesize($filePath). ';' . "\r\n"; 
$strRawMessage .= 'Content-Transfer-Encoding: base64' . "\r\n\r\n"; 
$strRawMessage .= chunk_split(base64_encode(file_get_contents($filePath)), 76, "\n") . "\r\n"; 
$strRawMessage .= '--' . $boundary . "\r\n"; 

$strRawMessage .= "\r\n--{$boundary}\r\n"; 
$strRawMessage .= 'Content-Type: text/plain; charset=' . $charset . "\r\n"; 
$strRawMessage .= 'Content-Transfer-Encoding: 7bit' . "\r\n\r\n"; 
$strRawMessage .= $strMailTextVersion . "\r\n"; 

$strRawMessage .= "--{$boundary}\r\n"; 
$strRawMessage .= 'Content-Type: text/html; charset=' . $charset . "\r\n"; 
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n"; 
$strRawMessage .= $strMailContent . "\r\n"; 
// The message needs to be encoded in Base64URL 
$mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '='); 
$msg = new Google_Service_Gmail_Message(); 
$msg->setRaw($mime); 

또한이 curl implementation 또는이 ajax implementation

+0

감사를 확인,하지만 여전히 작동하지 않았다. 내 메시지가 동일한 형식이며 큰 첨부 파일이있는 사용자를 제외하고 성공적으로 가져옵니다. –

관련 문제