Python: Modify Values in eml file (email header)

守給你的承諾、 提交于 2019-12-10 11:16:55

问题


I would like to have a changes of "To" and "From" field's email addresses using Python. So far now I did following which is working for reading required field. Any one please suggest, How to make change in them.

from email.parser import Parser

fp = open('2.eml', 'r+')
headers = Parser().parse(fp)

# Make changes only within a code, Not in to the file. I would like to save given changes for from in to my 2.eml file
headers.replace_header('from', 'newEmail@domain.com') 

print ('To: %s' % headers['to'])
print ('From: %s' % headers['from'])
print ('Subject: %s' % headers['subject'])

回答1:


You should write the changed message back to the file:

with open('2.eml', 'w') as outfile:
    outfile.write(headers.as_string())

Note that your name headers is not completely accurate as the value returned by email.parser.Parser.parse is email.message.Message.



来源:https://stackoverflow.com/questions/37543395/python-modify-values-in-eml-file-email-header

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!