文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Parse Mail Header fo

2023-01-31 01:53

关注

最近因为公司是做邮件行业的,所以用Python 写了一个登录邮箱 imap的程序,主要功能是 登录到相应的邮件地址,查找邮件在收件箱还是垃圾箱等,并提取邮件头的相应信息如:邮件主题、发送域、发送IP等,程序如下:

#!/usr/bin/python
import imaplib, email, re, string
from datetime import datetime, timedelta
from email.parser import Parser
from email.Utils import parseaddr
from email.Header import decode_header
def getmailheader(header_text, default="ascii"):
    """Decode header_text if needed"""
    try:
        headers=decode_header(header_text)
    except email.Errors.HeaderParseError:
        # This already append in email.base64mime.decode()
        # instead return a sanitized ascii string
        return header_text.encode('ascii', 'replace').decode('ascii')
    else:
        for i, (text, charset) in enumerate(headers):
            try:
                headers[i]=unicode(text, charset or default, errors='replace')
            except LookupError:
                # if the charset is unknown, force default
                headers[i]=unicode(text, default, errors='replace')
        return u"".join(headers)
obj = imaplib.IMAP4('mail.sohu.com')
obj.login('ransheroo@sohu.com','aklksbbl')
obj.select('INBOX')
typ, data = obj.uid('search', None, 'ALL')
num = string.split(data[0])[-1]
print num
typ, data = obj.uid('fetch', num, '(RFC822)')
msg = email.message_from_string(data[0][1])
received = msg.get_all('Received', '')
ip = re.search(r'\[(.*)\]', received[1]).group(1)
subject = getmailheader(msg.get('Subject', ''))
the_from = msg.get('From', '')
from_address = re.search(r'<(.*)>',the_from).group(1)
sender = msg.get('X-Sender', '')
if "<" in sender:
    sender = re.search(r'<(.*)>',sender).group(1)
print "Mail's subject is %s" % subject
print "Mail's ip is %s" % ip
print "Mail's from_address is %s" % from_address
print "Mail's sender is %s" % sender
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯