У меня есть статическая HTML-страница контактов, на которой пользователю необходимо указать свое имя, адрес электронной почты, тему и сообщение, и в конечном итоге мой сценарий перенаправит все необходимые значения через AWS API -> Lambda -> my.Gmail.
Итак, для этого у меня есть подтвержденный аккаунт GMAIL в SES.А моя функция AWS Lambda показана ниже (здесь я использовал один и тот же подтвержденный адрес электронной почты для отправки и отправки для отправки электронной почты.)
'use strict';
console.log('Loading function');
const AWS = require('aws-sdk');
const sesClient = new AWS.SES();
const sesConfirmedAddress = "XXXX@gmail.com";
/**
* Lambda to process HTTP POST for a contact form with the following body
* {
"email": <contact-email>,
"subject": <contact-subject>,
"message": <contact-message>
}
*
*/
exports.handler = (event, context, callback) => {
console.log('Received event:', JSON.stringify(event, null, 2));
var emailObj = JSON.parse(event.body);
var params = getEmailMessage(emailObj);
var sendEmailPromise = sesClient.sendEmail(params).promise();
var response = {
statusCode: 200
};
sendEmailPromise.then(function(result) {
console.log(result);
callback(null, response);
}).catch(function(err) {
console.log(err);
response.statusCode = 500;
callback(null, response);
});
};
function getEmailMessage (emailObj) {
var emailRequestParams = {
Destination: {
ToAddresses: [ sesConfirmedAddress ]
},
Message: {
Body: {
Text: {
Data: emailObj.message
}
},
Subject: {
Data: emailObj.subject
}
},
Source: sesConfirmedAddress,
ReplyToAddresses: [ emailObj.email ]
};
return emailRequestParams;
}
Теперь в IAM я создал политику и прикрепил ее кэта лямбда-функция.Затем я создал API, чтобы использовать эту функцию для своих целей.
Теперь, когда я нажимаю кнопку TEST в API, он дает мне код возврата 200. Это здорово.Но проблема в том, что я не вижу ни одного письма в моей подтвержденной учетной записи Gmail.
Я использую это как мое тестовое сообщение,
{
"email": XXXX@example.com,
"subject": Test,
"message": This is a Test message
}
Iпопытался также использовать почтальон и почтальон говорит, что все в порядке с 200 в качестве кода возврата.Но все равно нет электронной почты для моей учетной записи Gmail .Я проверил в журналах наблюдения за облаками все зеленое.Так что не знаю, почему мой проверенный Gmail не получает никаких тестовых сообщений.Может ли кто-нибудь пролить здесь свет?
Настроенная роль выглядит следующим образом:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ses:SendEmail",
"ses:SendTemplatedEmail",
"ses:SendRawEmail"
],
"Resource": "*"
}
]
}