0
我對Google App Engine(和python)的合理新手我正在實現一個系統,該系統將基本解析傳入的電子郵件並將詳細信息存儲在Data Store中。現在我確實有工作,但我覺得現在應該有更好的方式來做到這一點。使用Google App Engine從電子郵件中收集數據
基本上,進來到系統中的電子郵件總是看起來像下面這樣:
Order Details: Random Batch Name here
Order Status: 74 of 131 Shipped In Total
Message ID: 123456
Message Date: 21/04/2011 16:13:00
Mobile Number:
Message: message would be here
我使用解析它看起來像這樣的代碼:
class LogSenderHandler(InboundMailHandler):
def receive(self, message):
# Get the body text from the e-mail
plaintext_bodies = message.bodies('text/plain')
for content_type, body in plaintext_bodies:
body_text = body.decode().split('\n')
# Loop through each line in the e-mail and discard a line if it is blank
for line in body_text:
if line != "":
# I'm sure there's a better way of doing this, just don't know how right now!
# Split the current line based on the ": " value and only let it be done once
splitline = line.split(': ', 1)
# Check to see which line we now have the details for and place value into the correct variable
if splitline[0] == "Order Details":
batch = splitline[1]
if splitline[0] == "Message ID":
messageID = splitline[1]
if splitline[0] == "Message Date":
messageDate = splitline[1]
if splitline[0] == "Mobile Number":
mobileNumber = splitline[1]
if splitline[0] == "Message":
theMessage = splitline[1]
newNumber = SMSNumber(status = "Waiting",
batch = common.slugify(batch),
messageID = messageID,
messageDate = messageDate,
sentMessage = theMessage)
newNumber._key_name = mobileNumber
newNumber.put()
有處理這個問題的更好方法是?如果有人有任何意見,我們將非常感激! :)
問候
「更好」是什麼意思? – geoffspear 2011-05-12 13:22:52
確實效率更高。 – vultuk 2011-05-12 13:27:27
http://docs.python.org/library/email.parser.html也許這一個? 'import email >>> msg = email.message_from_string(myString)' – lucemia 2011-05-12 20:10:34