广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Parse Mail Header fo
  • 330
分享到

Parse Mail Header fo

MailParsefo 2023-01-31 01:01:18 330人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

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

最近因为公司是做邮件行业的,所以用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

--结束END--

本文标题: Parse Mail Header fo

本文链接: https://www.lsjlt.com/news/184869.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Parse Mail Header fo
    最近因为公司是做邮件行业的,所以用Python 写了一个登录邮箱 imap的程序,主要功能是 登录到相应的邮件地址,查找邮件在收件箱还是垃圾箱等,并提取邮件头的相应信息如:邮件主题、发送域、发送IP等,程序如下:#!/usr/bin/pyt...
    99+
    2023-01-31
    Mail Parse fo
  • Android OKHTTP发起请求提示:SSLException: Unable to parse TLS packet header
    今天切换环境进行调试,某一个接口突然出现报错: javax.net.ssl.SSLException: Unable to parse TLS packet header at com.android.org.conscrypt.Co...
    99+
    2023-09-26
    okhttp
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作