我在 ubuntu 16.04 上使用 python 2.7。
我一直在使用 python 从我的电脑上由 Thunderbird 创建的 mbox 文件中读取电子邮件。我现在想将消息添加到这些 mbox 文件中。我关闭了 Thunderbird,然后尝试从命令行运行我的 python 脚本。python 脚本根本没有给我任何错误消息,但是当我打开 Thunderbird 时,我没有看到任何新消息被添加到 mbox 文件中。
我确实看看我是否有权限问题。我把linux中mbox文件的权限改成了:view content=anyone,change content=anyone,execute=anyone。
我在 sudo 模式下运行我的 python 脚本。
这是我尝试过的代码:
mboxfile = "/home/jan/.thunderbird/gkzlvipz.default/ImapMail/mail.jan.info/INBOX"
print("opening: "+mboxfile)
mbox = mailbox.mbox(mboxfile)
mbox.lock()
try:
print("Trying:Begins")
msg = mailbox.mboxMessage()
msg.set_unixfrom('author Sat Feb 7 01:05:34 2020')
msg['From'] = 'info@jan.info'
msg['To'] = 'ljan@gmail.com'
msg['Subject'] = 'JL Python Sample message 1'
msg.set_payload('This is the body.\nFrom (should be escaped).\nThere are 3 lines.\n')
mbox.add(msg)
mbox.flush()
print("Trying:Ends")
except Exception as e:
# Just print(e) is cleaner and more likely what you want,
# but if you insist on printing message specifically whenever possible...
Print("Exception - FAILED")
if hasattr(e, 'message'):
print("Error 1: " + e.message)
else:
print("Error 2: " + e)
finally:
print("Finally")
mbox.unlock()
sys.exit("PYTHON ENDS: TEST EMAIL SEND FINISHED")
运行上述脚本时得到的输出是:
*** PYTESTTHUNDERBIRD BEGINS ***
opening: /home/jan/.thunderbird/gkzlvipz.default/ImapMail/mail.jan.info/INBOX
Trying:Begins
Trying:Ends
Finally
PYTHON ENDS: TEST EMAIL SEND FINISHED
我不知道我做错了什么以及为什么我没有收到任何错误消息。
我将不胜感激任何帮助。
谢谢。