在AWS SES中设置使用SNS和Lambda的规则集,并编写Lambda函数来处理接收到的邮件。以下是代码示例:
在AWS SES中创建规则集并设置使用SNS和Lambda。该规则集将告诉SES将所有接收到的邮件发送到SNS主题并调用Lambda函数进行处理。以下是设置规则集的代码示例:
{ "RuleSetName": "MyRuleSet", "Rules": [ { "Name": "MyRule", "Enabled": true, "Actions": [ { "SNSAction": { "TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic" } }, { "LambdaAction": { "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:MyLambdaFunction" } } ], "Recipients": [ "example.com" ] } ] }
编写Lambda函数来处理接收到的邮件。以下是Python代码示例:
import json
def lambda_handler(event, context): # Parse SNS message message = json.loads(event['Records'][0]['Sns']['Message'])
# Get SES email data
data = message['mail']
# Get email headers
headers = data['commonHeaders']
from_address = headers['from'][0]
subject = headers['subject']
# Get email body
body = data['body']
if body['text']:
content = body['text']
else:
content = body['html']
# Process email
# ...
return {
'statusCode': 200,
'body': json.dumps('Email processed successfully.')
}
以上就是解决AWS SES使用SNS和Lambda无法接收电子邮件的方法。通过设置规则集和编写Lambda函数,就可以成功处理接收到的邮件。