#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, потому что я хочу получить, подтвержден ли домен и т. Д.