Как отправить письмо из моей личной учетной записи Gmail, используя PHP и Gmail API? - PullRequest
0 голосов
/ 28 января 2019

Я хочу программно отправлять электронную почту из моей личной учетной записи электронной почты, используя Gmail API и PHP.Причина для того, чтобы задать этот вопрос:

Я не могу использовать SMPT, потому что я использую хостинг А2, который запрещает планам общего хостинга подключаться к удаленному серверу SMPT.

Кажется, единственное решениеиспользует Gmail API.Я вижу много похожих уроков.Однако они в основном не предназначены для использования личной учетной записи электронной почты (т. Е. Большинство этих методов запрашивают авторизацию пользователей и отправляют электронные письма от их имени).У меня другой случай: я просто хочу отправлять электронные письма, используя мою личную учетную запись Gmail.

Пока что я только что нашел один урок по этой теме http://sahmwebdesign.com/gmail-api-via-service-accounts/.Но, похоже, для этого метода мне нужна учетная запись G-Suite, что означает дополнительные расходы для меня.

В любом случае можно ли заставить учетные записи служб работать с обычной учетной записью пользователя gmail.Если нет, то как я могу использовать API Gmail без необходимости все время входить в систему.

1 Ответ

0 голосов
/ 28 января 2019

Вы должны помнить, что учетная запись Gmail - это личные данные пользователя.Чтобы использовать API Gmail для отправки электронного письма, у вас должно быть разрешение владельца этой учетной записи, чтобы отправлять электронную почту программным способом из этой учетной записи.

Для этого мы используем Oauth2.Вам нужно будет аутентифицировать приложение после того, как вы сохраните токен обновления где-нибудь, и позже вы сможете использовать токен обновления, чтобы получить новый токен доступа для его использования.Это невозможно, используя учетную запись обычного пользователя Gmail

У меня есть код, показывающий, как использовать токен обновления Oauth2Authentication.php

$client->refreshToken($_SESSION['refresh_token']);
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken()); 

Сервисные учетные записи

Сервисные учетные записи предназначены для взаимодействия между серверами и предварительно одобрены.К сожалению, учетные записи службы работают только с учетными записями Gsuite Gmail, а не с обычными учетными записями Gmail.

...