电子邮件标准库包装器
mail-parser的Python项目详细描述
PyPI versionBuild StatusCoverage StatusBCH compliance `<;https://microbadger.com/images/fmantuano/spamscope-mail-parser>;`
SPAM范围
邮件分析器
概述
邮件分析器不仅仅是 emailPython 标准库。它给你一个简单的方法从原始邮件传递到 可以在代码中使用的python对象。它是 SpamScope。
邮件分析器可以分析outlook电子邮件格式(.msg)。要使用此功能, 您需要安装libemail-outlook-message-perlpackage。为了 基于debian的系统:
$ apt-get install libemail-outlook-message-perl
有关详细信息:
$ apt-cache show libemail-outlook-message-perl
邮件解析器支持python 3。
Web上的邮件分析器
说明
邮件解析器将原始邮件作为输入,并生成一个已解析的对象。 此对象的属性与RFC headers:
- 密件抄送
- 抄送
- 日期
- 交付至
- from(不是from,因为是python的关键字)
- 消息ID
- 收到
- 回复至
- 主题
- 至
还有其他属性要获取:-body-body html-body plain- 标题-附件-发件人IP地址-到域-时区
若要获取自定义标题,应将“-”替换为“\例如 标题X-MSMail-Priority:
$ mail.X_MSMail_Priority
received头在hop中被解析和拆分。田野 支持的是:-by-date-date_utc-delay(两跳之间)- envelope_from-envelope_sender-for-from-hop-带
邮件分析器可以检测邮件中的缺陷: defects: 带有一些不合规RFC部分的邮件
所有属性都有一个json和raw属性,您可以使用它: name_json-name_raw
示例:
$ mail.to (Python object) $ mail.to_json (JSON) $ mail.to_raw (raw header)
命令行工具使用json格式。
缺陷
这些缺陷可以用来躲避反垃圾邮件过滤器。一个例子是 边界错误的邮件可以隐藏不合法的 结语(通常是恶意软件)。这个图书馆可以接受这些结语。
安装
克隆存储库
git clone https://github.com/SpamScope/mail-parser.git
并使用setup.py:
安装邮件分析器$ cd mail-parser $ python setup.py install
或者使用pip:
$ pip install mail-parser
在项目中的使用
导入mailparser模块:
import mailparser mail = mailparser.parse_from_bytes(byte_mail) mail = mailparser.parse_from_file(f) mail = mailparser.parse_from_file_msg(outlook_mail) mail = mailparser.parse_from_file_obj(fp) mail = mailparser.parse_from_string(raw_mail)
然后您可以获得所有零件
mail.attachments: list of all attachments mail.body mail.date: datetime object in UTC mail.defects: defect RFC not compliance mail.defects_categories: only defects categories mail.delivered_to mail.from_ mail.get_server_ipaddress(trust="my_server_mail_trust") mail.headers mail.mail: tokenized mail in a object mail.message: email.message.Message object mail.message_as_string: message as string mail.message_id mail.received mail.subject mail.text_plain: only text plain mail parts in a list mail.text_html: only text html mail parts in a list mail.to mail.to_domains mail.timezone: returns the timezone, offset from UTC mail_partial: returns only the mains parts of emails
从命令行使用
如果使用pip或setup.py安装了mailparser,则可以使用它 使用命令行。
这些都是开关:
usage: mailparser [-h] (-f FILE | -s STRING | -k) [-l {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}] [-j] [-b] [-a] [-r] [-t] [-dt] [-m] [-u] [-c] [-d] [-o] [-i Trust mail server string] [-p] [-z] [-v] Wrapper for email Python Standard Library optional arguments: -h, --help show this help message and exit -f FILE, --file FILE Raw email file (default: None) -s STRING, --string STRING Raw email string (default: None) -k, --stdin Enable parsing from stdin (default: False) -l {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}, --log-level {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET} Set log level (default: WARNING) -j, --json Show the JSON of parsed mail (default: False) -b, --body Print the body of mail (default: False) -a, --attachments Print the attachments of mail (default: False) -r, --headers Print the headers of mail (default: False) -t, --to Print the to of mail (default: False) -dt, --delivered-to Print the delivered-to of mail (default: False) -m, --from Print the from of mail (default: False) -u, --subject Print the subject of mail (default: False) -c, --receiveds Print all receiveds of mail (default: False) -d, --defects Print the defects of mail (default: False) -o, --outlook Analyze Outlook msg (default: False) -i Trust mail server string, --senderip Trust mail server string Extract a reliable sender IP address heuristically (default: None) -p, --mail-hash Print mail fingerprints without headers (default: False) -z, --attachments-hash Print attachments with fingerprints (default: False) -sa, --store-attachments Store attachments on disk (default: False) -ap ATTACHMENTS_PATH, --attachments-path ATTACHMENTS_PATH Path where store attachments (default: /tmp) -v, --version show program's version number and exit It takes as input a raw mail and generates a parsed object.
示例:
$ mailparser -f example_mail -j
本例将以json格式向您展示标记化邮件。
来自raw mail 到parsed mail。
异常
邮件分析器的异常层次结构:
MailParserError: Base MailParser Exception | \── MailParserOutlookError: Raised with Outlook integration errors | \── MailParserEnvironmentError: Raised when the environment is not correct | \── MailParserOSError: Raised when there is an OS error | \── MailParserReceivedParsingError: Raised when a received header cannot be parsed