Использование AWS SES без официального PHP SDK

#php #amazon-web-services #guzzle #amazon-ses

#php #amazon-веб-сервисы #жрать #amazon-ses

Вопрос:

Я изучаю AWS Simple Email Service (SES), и я хотел бы отправлять электронные письма и, возможно, проверять, подтвержден ли домен, но без использования официального PHP SDK.

Почему? Потому что я думаю, что слишком много кода добавляется в vendor папку для простого запроса.

Однако это не кажется простым. Обратите внимание, что я использую us-east-1 region.

Это пример кода:

 $response = Http::withBasicAuth('foo', 'bar')
    ->post('https://email.us-east-1.amazonaws.com');

$response->throw();
  

Это фрагмент из Laravel-оболочки вокруг Guzzle, но окончательная реализация здесь не так важна. Я больше говорю о теоретической стороне. Конечно, код не работает. На самом деле это дает мне 200 код состояния, который кажется странным, поскольку он должен выдавать мне либо ошибку проверки, либо ошибку авторизации.

Я заметил, что AWS SES требует какой-то подписи plus в запросе, а также я не уверен, какой метод аутентификации он использует.

Кто-нибудь знает, как это реализовать?

Спасибо!

Комментарии:

1. этот вопрос, вероятно, будет помечен и удален за то, что он недостаточно конкретен. в любом случае, это всего лишь простые запросы rest. пока вы предоставляете им все необходимые параметры, сервер должен отвечать тем, что вам нужно. Я уверен, что некоторые данные аутентификации будут указаны в заголовке запроса, и все, что относится к запросу, будет в URL или теле запроса. В их документах будет указано, на какие конечные точки вам нужно отправить запрос и с какой информацией.

2. Спасибо за ответ. Я подумал, что это может быть не слишком конкретно, и именно поэтому я добавил некоторый код (который на самом деле я пробовал), однако он даже не говорит мне, что это неправильная проверка подлинности, неправильные параметры (4xx) и т.д.

3. я бы проверил другие параметры заголовка, которые он возвращает, а также тело. 200 может просто означать, что конечная точка существует

4. Я считаю, что вам нужно подписывать свои запросы. Я не обращался к этому API напрямую раньше, но обычно вы отправляете один запрос на получение токена, а затем отправляете этот токен в заголовке авторизации вместе с вашими последующими запросами GET. docs.aws.amazon.com/general/latest/gr /…

5. @Typel спасибо за эту ссылку! Я проверю это завтра, но выглядит многообещающе.

Ответ №1:

Вам вообще не нужно использовать AWS SDK, если вы используете опцию SMTP, предлагаемую SES, вместо опции SES по умолчанию / raw — это буквально просто замена любого SMTP-сервера, который вы уже используете — должно быть так же просто, как просто изменить конфигурацию.

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html

Комментарии:

1. Спасибо, но я хотел бы использовать API, потому что я хочу получить, подтвержден ли домен и т. Д.