2017-11-22 3 views
1

Gmail API를 사용하여 모든 html로 이메일을 보내고 싶습니다. 이것은 HTML의 미리보기입니다 : https://docs.google.com/drawings/d/1J0nzeTol6VFr8sB1TlMDbTrSVanDncQ8FOelP_SvmY0/edit이메일 보내기 Gmail과 함께 모든 스타일링을 포함한 HTML 콘텐츠 php api

그러나 이메일에있는 모든 스타일을 내가 내 테스트 계정으로 이메일을 보내 다음 내가받은 편지함에서 이메일을 확인할 때 손실됩니다. 보내는 메일의 스크린 샷입니다. https://docs.google.com/drawings/d/1yfzmlqzMhJMWbJth-o6mfgSJcGAtUIKr41hpvzlFQGE/edit?usp=sharing

전자 메일에서 모든 스타일링을 얻고 싶습니다. 또한 charset iso-8859-1을 시도했지만 여전히 동일한 결과가 나타납니다.

이 내 PHP 코드 : 영업 이익은 Content-Transfer-Encoding: base64-Content-Transfer-Encoding: quoted-printable 문제가 해결 변경하여 지적

 $service = new Google_Service_Gmail($this->client); 
     $user = 'me'; 
     $strSubject = $subject; 
     $strRawMessage = "From: <".$from.">\r\n"; 
     $strRawMessage .= "To: <".$to.">\r\n"; 
     $strRawMessage .= 'Subject: =?utf-8?B?' . base64_encode($strSubject) . "?=\r\n"; 
     $strRawMessage .= "MIME-Version: 1.0\r\n"; 
     $strRawMessage .= "Content-Type: text/html; charset=utf-8\r\n"; 
     $strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n"; 
     $strRawMessage .= $message."\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); 
     //The special value **me** can be used to indicate the authenticated user. 
     $service->users_messages->send("me", $msg); 
+0

해결 할 수 있었다 '콘텐츠 - 전송 - 인코딩 : 인용 - printable'' ' 에'콘텐츠 - 전송 인코딩 : base64 '' –

답변

1

.

나는 거의 동일한 문제를 가지고 있었고, 그것을 그것은이 `변경하여 고정되어 같은 방식으로