私のアプリケーションは受信メールを受信し、送信者のメールアドレスをデータストアに保存します。方法のためApp Engine Datastoreが電子メールを間違った形式で保存しています
John Smith <[email protected]>
私のアプリ、クエリが、私はこれだけの形式でアドレスを検索することができます設定されています::問題は、それがこの形式で保存しますです[email protected]
私が使用しようとしました正規表現は、メッセージをフォーマットするが、それは何らかの理由で動作しません、私はリストのインデックスを私が試したすべての式で範囲のエラーを取得します。それが役に立つなら、ここに私のメールハンドラのコードがあります。
私はApp Engineのログをチェックしていますが、受信したメッセージは必要な形式で入っていますが、データストアのエンティティをチェックして名前とともに追加します。
私はちょうど余分なビットなしで格納された電子メールアドレスを得ることができるか知る必要があります。
import webapp2
import logging
from google.appengine.ext.webapp import mail_handlers
from google.appengine.api import mail
import os
from main import WorkRequest
import re
class IncomingMailHandler(mail_handlers.InboundMailHandler):
def receive(self, message):
(encoding, payload) = list(message.bodies(content_type='text/plain'))[0]
body_text = payload.decode()
logging.info('Received email message from %s, subject "%s": %s' %
(message.sender, message.subject, body_text))
logging.info (message.sender)
logging.info(message.subject)
logging.info(body_text)
sender = str(message.sender)
logging.info(sender)
email_address = re.findall('<([^>])>', sender)[0]
wr = WorkRequest()
wr.email = email_address
wr.userId = None
wr.title = message.subject
wr.content = body_text
wr.status = "OPEN"
wr.submission_type = "EMAIL"
wr.assigned_to = "UNASSIGNED"
wr.put()
application = webapp2.WSGIApplication([('/_ah/mail/.+', IncomingMailHandler)],debug=True)