目前IMAP/POP3不支持SES。我有類似的要求,並在評估了幾種方法後,我使用了Lambda將電子郵件轉發到我的網絡郵件。
您可以使用以下Lambda代碼轉發轉發給SNS主題的電子郵件。
var AWS = require('aws-sdk');
var forwardFrom = process.env.from_address;
var forwardTo = process.env.to_address;
exports.handler = function(event, context) {
var msgInfo = JSON.parse(event.Records[0].Sns.Message);
// don't process spam messages
if (msgInfo.receipt.spamVerdict.status === 'FAIL' || msgInfo.receipt.virusVerdict.status === 'FAIL') {
console.log('Message is spam or contains virus, ignoring.');
context.succeed();
}
var email = msgInfo.content,
headers = "From: " + forwardFrom + "\r\n";
headers += "Reply-To: " + msgInfo.mail.commonHeaders.from[0] + "\r\n";
headers += "X-Original-To: " + msgInfo.mail.commonHeaders.to[0] + "\r\n";
headers += "To: " + forwardTo + "\r\n";
headers += "Subject: Fwd: " + msgInfo.mail.commonHeaders.subject + "\r\n";
if (email) {
var res;
res = email.match(/Content-Type:.+\s*boundary.*/);
if (res) {
headers += res[0] + "\r\n";
} else {
res = email.match(/^Content-Type:(.*)/m);
if (res) {
headers += res[0] + "\r\n";
}
}
res = email.match(/^Content-Transfer-Encoding:(.*)/m);
if (res) {
headers += res[0] + "\r\n";
}
res = email.match(/^MIME-Version:(.*)/m);
if (res) {
headers += res[0] + "\r\n";
}
var splitEmail = email.split("\r\n\r\n");
splitEmail.shift();
email = headers + "\r\n" + splitEmail.join("\r\n\r\n");
} else {
email = headers + "\r\n" + "Empty email";
}
new AWS.SES().sendRawEmail({
RawMessage: { Data: email }
}, function(err, data) {
if (err) context.fail(err);
else {
console.log('Sent with MessageId: ' + data.MessageId);
context.succeed();
}
});
}
注:您需要設置FROM_ADDRESS,並to_address與IAM角色一起爲此工作。
有關詳細信息步驟,請參閱以下介質文章,該文章還將鏈接到具有CloudFormation堆棧的Github存儲庫以進行自動配置。
Forwarding Emails to your Inbox Using Amazon SES
另外,您可以使用Amazon Workmail接收電子郵件,但它會增加包月費用。
謝謝你的回答。我是否正確理解這一點......當SES收到一封「admin @ domain.com」的電子郵件時,會調用一個lambda函數以將該電子郵件轉發到另一個電子郵件地址,例如「example @ gmail.com」?如果是這樣,當'example @ gmail.com'回覆轉發的電子郵件時,'From'地址會顯示原始的收件人('admin @ domain.com')或轉發的電子郵件地址('example @ gmail。 com) – SuperVeetz
當前的代碼替換原始發件人的電子郵件地址,因此當您收到電子郵件到Gmail時,它將來自您指定的地址。要保留原始發件人地址,您可能需要稍微修改代碼,以便您可以直接回復原始發件人。 – Ashan