【发布时间】:2025-12-30 12:30:16
【问题描述】:
我的应用程序接收传入的电子邮件并将发件人的电子邮件地址保存到数据存储中。问题是它以这种格式保存它们:
John Smith <jsmith@email.com>
由于我的应用程序及其查询的设置方式,我只能搜索这种格式的地址:jsmith@email.com
我尝试使用正则表达式来格式化消息,但由于某种原因它不起作用,我尝试的每个表达式都出现列表索引超出范围错误。如果有帮助,这是我的邮件处理程序的代码。
我已经检查了 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)
【问题讨论】:
标签: python email google-app-engine