documents/dev/snippets/aws/email forwarding.md
AWS Email Forward
https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html https://aws.amazon.com/premiumsupport/knowledge-center/lambda-send-email-ses/ SES account needs to be in prod and not sandbox to send to unverified recipient https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html
// https://github.com/arithmetric/aws-lambda-ses-forwarder
var LambdaForwarder = require("./aws-lambda-ses-forwarder");
exports.handler = function(event, context, callback) {
var overrides = {
config: {
fromEmail: "forwarder@dominickpham.com",
subjectPrefix: "",
emailBucket: "dominickpham",
emailKeyPrefix: "mail/",
forwardMapping: {
"@dominickpham.com": [
"dominick.pham@gmail.com"
],
"@dph.am": [
"dominick.pham@gmail.com"
]
}
}
};
LambdaForwarder.handler(event, context, callback, overrides);
};
{
"Records": [
{
"eventSource": "aws:ses",
"eventVersion": "1.0",
"ses": {
"mail": {
"timestamp": "2022-01-28T15:44:27.951Z",
"source": "dominick.pham@gmail.com",
"messageId": "1iqg5m43fqvgpe71tuediuphaiqvfma9kr65so01",
"destination": [
"me@dominickpham.com"
],
"headersTruncated": false,
"headers": [
{
"name": "Return-Path",
"value": "<dominick.pham@gmail.com>"
},
{
"name": "Received",
"value": "from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id 1iqg5m43fqvgpe71tuediuphaiqvfma9kr65so01 for me@dominickpham.com; Fri, 28 Jan 2022 15:44:27 +0000 (UTC)"
},
{
"name": "X-SES-Spam-Verdict",
"value": "PASS"
},
{
"name": "X-SES-Virus-Verdict",
"value": "PASS"
},
{
"name": "Received-SPF",
"value": "pass (spfCheck: domain of _spf.google.com designates 209.85.208.170 as permitted sender) client-ip=209.85.208.170; envelope-from=dominick.pham@gmail.com; helo=mail-lj1-f170.google.com;"
},
{
"name": "Authentication-Results",
"value": "amazonses.com; spf=pass (spfCheck: domain of _spf.google.com designates 209.85.208.170 as permitted sender) client-ip=209.85.208.170; envelope-from=dominick.pham@gmail.com; helo=mail-lj1-f170.google.com; dkim=pass header.i=@gmail.com; dmarc=pass header.from=gmail.com;"
},
{
"name": "X-SES-RECEIPT",
"value": "AEFBQUFBQUFBQUFFRW84U01hRHdaRUJzazBtZ0x5RndNTnUyRWx3N2taZ1VVWHhUNVZsRmdURTBybS9wbnBZTWhqajk3V29RaDNlNWJqNlE4VmNHQnBGTnF3Rk9OSGJiTXVPeUVNYm9od05Kc0hmenpvd0FNYnUzL1NzRXE4NDMzS0JMdDlkL2NJRlRSQmZvdno4emprU2tWYW0xN0w4a29lRmQvTnQvTFFVNGhzR2Q1NnVaYU44Q3QyVjRqYytJbXVzQnRQVUF3OUFCdnYwRWplQXViY1hpczRLRmJoOFd4OHozZmNlcThOa09nbXV2UGZSUExXRTNaU0ZOTmFVRnVwMVRnVCtYd2Z4K2NXK0JHSU41STdUelk2bDRzKzdSSTBsSVBSRGpsdExRdG5hVWNndFBJeUE9PQ=="
},
{
"name": "X-SES-DKIM-SIGNATURE",
"value": "a=rsa-sha256; q=dns/txt; b=VKO8iKK7wOgE1C5yyzbG0wGN6DnWWQBdhOpFOjVOX4224lZTGyXR/ZVqlP02YDIY9y7eq1RNRni5Cj7Zx8Cbwn4wiR/Zcly6/TZMINKIDZl6H7u/niFykrA64lCrdp7Z0JD+TOvkh3ETj11BhSXe8a2cza22A2gPqwjVO9U4MCE=; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1643384668; v=1; bh=dd0+1PoWVP0FePNMqdsGSZjAInx7mP5tYbKjzBFDExE=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;"
},
{
"name": "Received",
"value": "by mail-lj1-f170.google.com with SMTP id e9so9623669ljq.1 for <me@dominickpham.com>; Fri, 28 Jan 2022 07:44:27 -0800 (PST)"
},
{
"name": "DKIM-Signature",
"value": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=dd0+1PoWVP0FePNMqdsGSZjAInx7mP5tYbKjzBFDExE=; b=kAWqzeVyuVddWAvkRwcaEpYjk1p6EbQbqaX2C3BpmbaRW9VFzXOWJn9nCLyfKu/RyMAmlel2QnWLOlZFqwL4Qdi2ehdYQxa4hQVRRsyQljjhlOItQngSn45ftbp3oYacRNGuse1V24WXHsxCRYbGn6qJzbAN+vX0hofPvhSgLr76CjOW+NhwEI6smGyRZfjdMd54DSqcMC0aSllDa6n0q6xjmTD6V7VA2cB9z+VfKlYusIVfIV4+vh8zU5VyQ1UrXI+VjR0A5nZAwQNiJl1AlWcWfkrmM4FihW4Hp6cDF1la+HBrs73jjyQHc4/Sgc/34OVdrrWKd71CQJ1Lh8Pf0A=="
},
{
"name": "X-Google-DKIM-Signature",
"value": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=dd0+1PoWVP0FePNMqdsGSZjAInx7mP5tYbKjzBFDExE=; b=5Egk8sc6f+oeyy9AhWolL9//D0CgjtJ14+aOXijdKkfqWhfHKhrS+TcLvK7b7eYWhg gGjoByEeWgz3DABvxbWMMjytvZZSYChDyYCT/+ZSoS5zIbkCHvgSl5VgKOKG0SecQS3J +6HCc96t/HmnZn0hhubs8NdyEUvmJSfab/68el2Ln4oIZ/i5QuIROaFZVo5gqur5hpsX IT6j2ipwwaE8Ze/5XIAJPkIhVFBWkQr2+AHrKmLBgJpvayro9FUE5frSvPlNXESzBo8R mvPkNZLQAd1xsPv7gVuv2PWgsa0Nsgh9NqNdqmY0kLmB6hgk+Ux0q26+17iSh96+RowX eMog=="
},
{
"name": "X-Gm-Message-State",
"value": "AOAM532zjYQnjho7nCIg+FsYegBbKMcSYV8KN1kFGFR/ful/N14mqFxv O0SGJWyh8VB9sOcvk/IrusaIqD5RwmKPRQgBr7m9NbEg058="
},
{
"name": "X-Google-Smtp-Source",
"value": "ABdhPJx0H0nMTzXVD+qhWu02ihm0lU2P4PgBl7lXiDVCJ9LJD+qeenc5kYH11kqhQWbwlBFY8tWu6UJPgheVy6mXnxM="
},
{
"name": "X-Received",
"value": "by 2002:a2e:9b0a:: with SMTP id u10mr6397270lji.25.1643384666109; Fri, 28 Jan 2022 07:44:26 -0800 (PST)"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "From",
"value": "Dominick Pham <dominick.pham@gmail.com>"
},
{
"name": "Date",
"value": "Fri, 28 Jan 2022 07:44:14 -0800"
},
{
"name": "Message-ID",
"value": "<CAD603MDF_wSnj+QW7OwNkaDhi6Bv1CbJXBFXpeHKEh0jJ1TqGA@mail.gmail.com>"
},
{
"name": "Subject",
"value": "subject:test"
},
{
"name": "To",
"value": "me@dominickpham.com"
},
{
"name": "Content-Type",
"value": "multipart/alternative; boundary=\"00000000000040b80305d6a64f01\""
}
],
"commonHeaders": {
"returnPath": "dominick.pham@gmail.com",
"from": [
"Dominick Pham <dominick.pham@gmail.com>"
],
"date": "Fri, 28 Jan 2022 07:44:14 -0800",
"to": [
"me@dominickpham.com"
],
"messageId": "<CAD603MDF_wSnj+QW7OwNkaDhi6Bv1CbJXBFXpeHKEh0jJ1TqGA@mail.gmail.com>",
"subject": "subject:test"
}
},
"receipt": {
"timestamp": "2022-01-28T15:44:27.951Z",
"processingTimeMillis": 661,
"recipients": [
"me@dominickpham.com"
],
"spamVerdict": {
"status": "PASS"
},
"virusVerdict": {
"status": "PASS"
},
"spfVerdict": {
"status": "PASS"
},
"dkimVerdict": {
"status": "PASS"
},
"dmarcVerdict": {
"status": "PASS"
},
"action": {
"type": "Lambda",
"functionArn": "arn:aws:lambda:us-east-1:432174144495:function:sendEmail",
"invocationType": "Event"
}
}
}
}
]
}