2016-08-29 28 views
1

受信メールをSESに解析するためのラムダ関数を設定します。私は書類に従って、受領規則を設定しました。AWSでメールを受信して​​解析するSES

私は、メールをtxtファイルに保存し、電子メールを解析し、必要な情報をJSON文書に格納してデータベースに保存することでスクリプトをテストしました。今、私はSESから受信した電子メールにアクセスし、その情報を私のPythonスクリプトに取り込む方法が不明です。どんな助けでも大歓迎です。

from email.parser import Parser 
parser = Parser() 

f = open('roundtripMime.txt', "r") 
rawText = f.read() 
incoming = Parser().parsestr(rawText) 

subject = incoming 
subjectList = subject.split("|") 

#Get number 
NumberList = subjectList[0].split() 
Number = NumberList[2].strip("()") 

#Get Name 
fullNameList = subjectList[3].split("/") 
firstName = fullNameList[1].strip() 
lastName = fullNameList[0].strip() 

答えて

0

実際には、より良い方法があるAmazon Simple Email Service document

を参照してください。 boto3を使用すると、電子メールを送信してメッセージを簡単に処理できます。

# Get the service resource 
sqs = boto3.resource('sqs') 

# Get the queue 
queue = sqs.get_queue_by_name(QueueName='test') 

# Process messages by printing out body and optional author name 
for message in queue.receive_messages(MessageAttributeNames=['Author']): 
    # Get the custom author message attribute if it was set 
    author_text = '' 
    if message.message_attributes is not None: 
     author_name = message.message_attributes.get('Author').get('StringValue') 
     if author_name: 
      author_text = ' ({0})'.format(author_name) 

    # Print out the body and author (if set) 
    print('Hello, {0}!{1}'.format(message.body, author_text)) 

    # Let the queue know that the message is processed 
    message.delete() 
0

SESルールセットにアクションを設定して、電子メールファイルをS3に自動的にプットすることができます。次に、S3で(特定のバケットのために)ラムダ機能をトリガするイベントを設定します。これで、次のようなメールを取得できます:

def lambda_handler(event, context): 

    for record in event['Records']: 
     key = record['s3']['object']['key'] 
     bucket = record['s3']['bucket']['name'] 
     # here you can download the file from s3 with bucket and key 
関連する問題