亚马逊SES支持接收电子邮件附件吗?

13

你有没有得到你的答案? - GuiSim
我刚刚确认了消息是如何传递到S3的,并添加了消息示例。 - Rodrigo Murillo
AWS将接收到的电子邮件存储在S3中。每封电子邮件都以eml格式存储在S3存储桶中。只需下载文件,将其重命名为.eml扩展名,它就可以在任何邮件客户端(如Outlook)中打开。此外,Lambda可以配置为处理此eml文件。 - ns15
1个回答

7

是的,通过创建收据规则,并定义将邮件消息保存到S3的操作,您可以从规则指定的存储桶中检索电子邮件消息及其附件作为S3对象。

例如,如果您为收件人指定了规则s3@sms.example.com,并分配了一个S3操作以写入到S3存储桶sms-example.com下的前缀messages,那么该收件人的邮件将传递到该存储桶中。

正如http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-consider-use-case.html所述:

Amazon SES将向您发送未修改的原始邮件,通常为 多用途互联网邮件扩展(MIME)格式。有关MIME格式的更多信息,请参阅RFC 2045。

这意味着附件将以MIME格式编码,作为多部分消息

由于电子邮件以原始MIME电子邮件形式传递,因此需要解析文件并提取附件。以下是带有附件的电子邮件示例:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=frontier

This is a message with multiple parts in MIME format.
--frontier
Content-Type: text/plain

This is the body of the message.
--frontier
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--

你可以在附件中找到以 Content-Type: application/octet-stream 开头的内容。该附件使用 base64 进行编码。
请参阅 RFC 2045 多用途因特网邮件扩展
以下是完整的消息,包括名为“example.jpg”的JPG附件,已发送到S3。它被发送到以下S3位置:https://s3.amazonaws.com/sms-example.com/messages/jldcn43gv5tt9qvhuia34ihodm6erpmqe3l7ghg1。对象名称取自消息提供的SMTP id。
Return-Path: <user@example.com>
Received: from mx6.example.com (mx6.example.com [255.255.245.6])
 by inbound-smtp.us-east-1.amazonaws.com with SMTP id jldcn43gv5tt9qvhuia34ihodm6erpmqe3l7ghg1
 for s3@sms.example.com;
 Thu, 27 Jul 2017 16:53:34 +0000 (UTC)
X-SES-Spam-Verdict: PASS
X-SES-Virus-Verdict: PASS
Received-SPF: softfail (spfCheck: transitioning domain of example.com does not designate 255.255.245.6 as permitted sender) client-ip=255.255.245.6; envelope-from=user@example.com; helo=mx6.example.com;
Authentication-Results: amazonses.com;
 spf=softfail (spfCheck: transitioning domain of example.com does not designate 255.255.245.6 as permitted sender) client-ip=255.255.245.6; envelope-from=user@example.com; helo=mx6.example.com;
X-SES-RECEIPT: AEFBQUFBQUFBQUFHbmZUa1QwOTA4N1dQc2ZiRGFQMTFMdzBNdzNkWG1uMEFEaGpIeEo4eHRuWUIrZUp3ZzJwK1RhZE1sWDhGY0RGWUg3Q2Q2U25Eb3BjNVVtTnhNQjVaWWhUN3c1NU4yWDRHMUxrNFlaRTRzcFU4aE5MbDZWUnBuVEdXN1VsNExBa2hrUHBMQnlPN1hDdzZnZXB1ek53MkwvZkVUcHpiZ3hJK2hESmNNUm5sNGxPazNMYnQrSG11UjY0djFxZ2VBalF6QlhZRnlWdWdQamcwTzlNN2xHZEticG5oZUQ1ZFVoTC9WWUtiZjY5amhkMTlRd1BWbUkyMnpIbmJUb0xpMzhVTlBMSzBqZzI3MFZHVFQvcU5CaHA0Rw==
X-SES-DKIM-SIGNATURE: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
    s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1501174414;
    h=X-SES-RECEIPT:Date:Subject:Message-ID:From:To:MIME-Version:Content-Type;
    bh=Kf3QaHVBBiEvy382/1pLBxRFSsmLtlEpffsi6Kju+B4=;
    b=h8+aAxvaaTyhF1HrkKjx7wWmdZ9IZ1wBAhULLQ6Yrf2ILYgiI5dWReJ5pZ5B3gkz
    IBTbMyLoX5/8mAxHck0OT8mHs7phuIh0kad3Aioel92PYKeVkr+k33/dQmD3B5r5UKn
    VEM41uSKQu2rGwB5CuAIgoGmKYMyeXnmX+bi6JL0=
X-Footer: a21zbXguY29t
Received: from mx4.example.com ([192.99.225.232])
    (authenticated user admin@kmsmx.com)
    by mx6.example.com (Mailer 9.2.3) with ESMTPSA
    (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256 bits))
    for s3@sms.example.com;
    Thu, 27 Jul 2017 10:53:30 -0600
X-Footer: ZG9qaWdneS5jb20=
Received: from localhost ([127.0.0.1])
    by mx4.example.com (Mailer 9.2.3) with ESMTPSA
    for s3@sms.example.com;
    Thu, 27 Jul 2017 10:53:04 -0600
Date: Thu, 27 Jul 2017 10:53:04 -0600
Subject: attachment
X-Mailer: Mailer 9.2.3/Mailer Client
X-User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
    (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
Message-ID: <2230798078-6450@mx4.example.com>
From: User <user@example.com>
To: s3@sms.example.com
X-Priority: 3
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-u4HpRD436UcA8Yj9oMVl"

--=-u4HpRD436UcA8Yj9oMVl
Content-Type: multipart/alternative; boundary="=-89WEH0obI4GHeo+VHXBi"

--=-89WEH0obI4GHeo+VHXBi
Content-Type: text/plain; charset="utf-8"


--=-89WEH0obI4GHeo+VHXBi
Content-Type: text/html; charset="utf-8"

<html><head></head><body></body></html>
--=-89WEH0obI4GHeo+VHXBi--

--=-u4HpRD436UcA8Yj9oMVl
Content-Type: image/jpeg; name="example.jpg"
Content-Disposition: attachment; filename="example.jpg"
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAYABgAAD/4RDaRXhpZgAATU0AKgAAAAgABAE7AAIAAAAFAAAISodpAAQA
AAABAAAIUJydAAEAAAAKAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA

--=-u4HpRD436UcA8Yj9oMVl--

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接