python - 退回的电子邮件检查
问题描述
我正在编写一个程序来检查哪些电子邮件地址已退回(未送达)并在 Python 中为其生成一个列表。但到目前为止,我只在收件箱的第一页收到退回的电子邮件(从我的代码中了解)。这是我到目前为止所拥有的:
inbox = {}
for item in items:
# getting email content
resp, data = M.fetch(item, "(RFC822)")
email_content = data[0][1]
msg = email.message_from_bytes(email_content)
content_list = msg.as_bytes().decode(encoding='UTF-8').split('\n')
# retrieve email address sent out
for cl in content_list:
if cl.startswith('To: '):
inbox[cl.replace("To: ", '').strip()] = 1
#print(cl) this prints out the sent email addresses
fail_content = ['Delivery Status Notification (Failure)','Undeliverable:','DELIVERY FAILURE:','Returned mail:','Undelivered Mail Returned to Sender']
# check Inbox
M.select('INBOX')
resp, items = M.search(None,"All")
items = items[0].split()
#print(items) prints out the number of inbox emails
for item in items:
resp, data = M.fetch(item, "(RFC822)")
email_content = data[0][1]
msg = email.message_from_bytes(email_content)
# check for all possible fail content
for fc in fail_content:
if fc in msg['Subject']:
# get email content
content_list = msg.as_bytes().decode(encoding='UTF-8')
# find its sender
for eo in inbox:
if eo in content_list:
inbox[eo] = 0
print(inbox)
解决方案
推荐阅读
- scala - 两个样本 Kolmogorov Smirnov 检验 SCALA 错误
- regex - 将聊天对话拆分为句子并映射响应
- javascript - 如何在 asp.net MVC 中创建 CheckBox onClick 事件
- javascript - 如何比较我的 release_date,如果它们匹配,然后按该顺序放置
- antlr4 - 为什么antlr for c#生成代码会抛出不存在的异常
- reactjs - 无法以 redux 形式抛出 SubmissionError
- java - Java 10 上的 JOGL(模块定义)
- c - _printf 是否需要堆栈上的额外空间才能工作?
- r - 如何使用 r 中的整洁文本进行二元组主题建模?
- material-ui - Material-ui v0 Safari iOS 对话框内容滚动