在Flask API中解析原始邮件



我需要在Flask应用程序中解析原始电子邮件并使用email包并返回电子邮件的内容。email包根本不工作,返回空字符串。任何想法吗?谢谢。

这是一个测试代码,我正在工作:

from flask import Flask, request, jsonify
import email
app = Flask(__name__)
@app.route('/emails', methods=['POST'])
Emails = []
def get_content(message):
e = email.message_from_string(message)
return e.get_payload()
def emails():        
if request.method == 'POST':
# Parsing the email
new_email = request.form['Content']

# Parsing the email
content = get_content(new_email)

new_obj = {'Content': content}
Emails.append(new_obj)
return jsonify(Emails), 201

if __name__=='__main__':
app.run(debug=True)

一个原始邮件的例子是这样的:'Message-ID: <9243650.1075857586383.JavaMail.evans@thyme>nDate: Tue, 21 Nov 2000 13:30:00 -0800 (PST)nFrom: john.arnold@enron.comnTo: john.lavorato@enron.comnSubject: Re:nMime-Version: 1.0nContent-Type: text/plain; charset=us-asciinContent-Transfer-Encoding: 7bitnX-From: John ArnoldnX-To: John J LavoratonX-cc: nX-bcc: nX-Folder: \John_Arnold_Dec2000\Notes Folders\SentnX-Origin: Arnold-JnX-FileName: Jarnold.nsfnneat shitnnnnnJohn J Lavorato@ENRONn11/18/2000 01:01 PMnTo: John Arnold/HOU/ECT@ECTncc: nSubject: nnFootball bets 200 eachnnMinn -9.5nBuff +2.5nPhil -7nIndi -4.5nCinnci +7nDet +6nclev +16nDen +9.5nDall +7.5nJack +3.5nnn'

故障排除步骤1总是"possible&quot一样;简化问题。在本例中,这意味着删除Flask并只处理电子邮件。一旦你让它自己工作,然后把它连接回Flask。

删除Flask和JSON的东西,我结束了这个,这对我来说很好。试着运行这个简化的版本,看看你是否仍然得到一个空字符串。

import email
def get_content(message):
e = email.message_from_string(message)
return e.get_payload()
def emails(new_email):
content = get_content(new_email)
return content
raw = 'Message-ID: <9243650.1075857586383.JavaMail.evans@thyme>nDate: Tue, 21 Nov 2000 13:30:00 -0800 (PST)nFrom: john.arnold@enron.comnTo: john.lavorato@enron.comnSubject: Re:nMime-Version: 1.0nContent-Type: text/plain; charset=us-asciinContent-Transfer-Encoding: 7bitnX-From: John ArnoldnX-To: John J LavoratonX-cc: nX-bcc: nX-Folder: \John_Arnold_Dec2000\Notes Folders\SentnX-Origin: Arnold-JnX-FileName: Jarnold.nsfnneat shitnnnnnJohn J Lavorato@ENRONn11/18/2000 01:01 PMnTo: John Arnold/HOU/ECT@ECTncc:  nSubject: nnFootball bets 200 eachnnMinn -9.5nBuff +2.5nPhil
-7nIndi -4.5nCinnci +7nDet +6nclev +16nDen +9.5nDall +7.5nJack +3.5nnn'
print(emails(raw))

最新更新