【PHP】Gmail API로 메일 받기
소개
Gmail API 참조는 모두 영어이므로 읽는 데 시간이 걸리고 어려움을 겪었으므로 일본어 메모에 남겨 둡니다.
공식 문서
Gmail API
클래스 Google_Service_Gmail_Message
↑ 여러가지 클래스가 있으므로, 원하는 메소드가 이미 존재하고 있을지도 모릅니다. 먼저 원하는 기능이 구현되지 않았는지 알아봅시다.
이전 준비
Gmail API
클래스 Google_Service_Gmail_Message
↑ 여러가지 클래스가 있으므로, 원하는 메소드가 이미 존재하고 있을지도 모릅니다. 먼저 원하는 기능이 구현되지 않았는지 알아봅시다.
이전 준비
빠른 시작
1. [ENABLE THE GMAIL API] 버튼을 클릭

클릭하면 아래와 같은 창이 나오므로 [DOWNLOAD CLIENT CONFIGURATION]
라는 버튼을 클릭

credentials.json라는 파일이 다운로드되므로 작업 디렉토리로 파일을 이동합니다.
2. Google Client 라이브러리 설치
$ composer require google/apiclient:^2.0
3. 샘플 생성
$ composer require google/apiclient:^2.0
quickstart.php라는 파일을 만듭니다 4. 샘플 실행 && 계정 인증
$ php quickstart.php
4-a. 터미널에 링크 대상이 표시되므로 복사하여 브라우저에서 표시
4-b. 화면에 따라 계정 인증하기
4-c. 인증 코드가 표시되므로 복사

4-d. 터미널에 붙여넣고 Enter
5. 인증 성공! 라벨 목록이 표시됩니다.
이후에는 작업 디렉토리에 추가된
token.json를 로드하여 인증하므로 일일이 Google 계정을 인증할 필요가 없습니다.php quickstart.php 시도한 다음 다시 실행하자마자 이메일 레이블 목록이 나타납니다.6. 메일 목록 얻기
quickstart.php
// さっき認証に使用した quickstart.php に追記します。
// 検索条件を追加することができます。
$optParams = array(
'maxResults' => '最大取得件数',
'labelIds' => 'ラベルのID', // ラベルのidはlistUsersLabels()で取得可能。
'pageToken' => 'ページトークン',
// Gmailのメール検索時の形式で条件を指定できます。
'q' => 'from:[email protected] after:2018-02-20',
);
// 条件に当てはまるメールの一覧を取得します。
$messages = $service->users_messages->listUsersMessages($user, $optParams);
// メッセージIDからメールの内容を取得します。
foreach($messages->getMessages as $message) {
$message_id = $message->getID();
$message_contents = $service->users_messages->get($user, $message_id);
print_r($message_contents);
}
7. 메모
메일의 본문은 상기의 코드라고
$message_contents['payload']['body']['data'] 에 있습니다만, URL 세이프 처리가 걸려져 있으므로 디코드할 필요가 있습니다.$body = $message_contents['payload']['body']['data'];
$body = str_replace(array('-', '_'), array('+', '/'), $body);
$body = base64_decode($body);
로 디코딩할 수 있습니다.
Reference
이 문제에 관하여(【PHP】Gmail API로 메일 받기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nagimaruxxx/items/39cfd50491cd16a45c47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)