Я использую безсерверный фреймворк, и я пытаюсь заставить свою лямбда-функцию отправлять электронную почту, используя сервис SES от Amazon.Я не думаю, что это так важно, но я использую PHP в оболочке node8 для своей лямбды.
- Я подтвердил адрес электронной почты в SES
- I 'Я получил разрешения на выполнение лямбда-роли для отправки электронной и обычной почты
- Я создал учетные данные SMTP, которые создают нового пользователя IAM, понимая, что эти учетные данные отличаются от учетных данных Vanilla AWS
Я предоставляю URL-адрес SMTP-соединения в своем коде, и после просмотра журнала он правильно извлекает пользователя / пароль и использует предоставленные учетные данные, порты и протокол.
535 Authentication Credentials Invalid
В журналах сообщается, чтоУчетные данные аутентификации недействительны.Я ищу понимание того, почему эти учетные данные считаются недействительными.Есть ли проблема с лямбда-ролью, предоставляющей учетные данные для пользователя, кроме его собственной роли?Я попытался делегировать отправку для созданного пользователя SMTP, чтобы этот пользователь мог отправлять электронные письма от имени подтвержденного адреса электронной почты в п. 1 выше.Я также попытался добавить политику для проверенной электронной почты в SES, которая позволяет роли lambda отправлять электронную почту от имени этой учетной записи, но политика электронной почты SES, похоже, не принимает лямбда-ARN.
Понимая, что мне нужно использовать конечную точку SMTP, кто-нибудь может дать несколько советов о том, как наилучшим образом преодолеть проблему неверных учетных данных?
...
iamRoleStatements:
# Allow the lambda function permission to create EINs, which is part of the
# AWSLambdaVPCAccessExecutionRole
- Effect: "Allow"
Action:
- "ec2:CreateNetworkInterface"
- "ec2:DescribeNetworkInterfaces"
- "ec2:DeleteNetworkInterface"
- "ses:SendEmail"
- "ses:SendRawEmail"
Resource: "*"
# end IAM role statements
...
И URL-адрес почтовой программы, который я использую для доступа к конечной точке SMTP, переменной средыв моей лямбде:
MAILER_URL=smtp://email-smtp.us-east-1.amazonaws.com:587?encryption=tls&username=YOUR_SES_USERNAME&password=YOUR_SES_PASSWORD
Варь YOUR_SES_USERNAME
и YOUR_SES_PASSWORD
являются соответствующими сгенерированными SES учетными данными SMTP.
Хотя идеи, непосредственно ориентированные на мой конкретный подход, являются предпочтительными, ятакже открыты для идей об альтернативах.
Заранее спасибо.