我在ubuntu16.04上使用python2.7。
我一直在使用python读取我的个人电脑上的mbox文件中的电子邮件,这些文件是由雷鸟创建的。现在我想将消息添加到那些mbox文件中。我关闭了thunderbird,然后尝试从命令行运行python脚本。python脚本根本不给我任何错误消息,但是当我打开thunderbird时,没有看到任何新的消息被添加到mbox文件中。
我确实想看看我是否有权限问题。我将linux中mbox文件的权限更改为:查看content=anyone、更改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我不知道我做错了什么,为什么我没有收到任何错误信息。
我将非常感谢任何帮助。
谢谢。
发布于 2022-01-21 22:36:42
您添加到mbox文件中的消息没有显示在Thunderbird中,因为您没有更新该文件夹的索引(.msf)文件。
在Thunderbird中,右键单击文件夹名并选择"Properties“。在“一般信息”选项卡中,阅读“修复文件夹”按钮旁边的空白页。然后单击文件夹。这将导致Thunderbird从头开始重建索引,包括您添加的消息。(当然,假设你在这个过程中没有把他们搞砸。)
https://stackoverflow.com/questions/62335331
复制相似问题