通过管道将电子邮件发送到 python 脚本

Posted

技术标签:

【中文标题】通过管道将电子邮件发送到 python 脚本【英文标题】:Pipe an email to a python script 【发布时间】:2013-01-01 14:48:30 【问题描述】:

我已经在我的 CPanel 中设置了将所有发送到 x@x.com 的电子邮件通过管道传输到我的 python 脚本中。我将如何将任何附件保存到服务器上的特定目录中,并可能查看电子邮件本身的主题/消息?

【问题讨论】:

关于转发电子邮件格式的文档并不完全存在。它是否给你一个多部分消息,某种字符串化的表示,服务器上文件的某个路径,或其他什么?除非@Thomas 的回答对您有用,否则当我们无法找出数据的格式时,很难告诉您如何正确处理这些数据。 【参考方案1】:

您可以使用email 包来处理 MIME 格式的电子邮件。使用email.parser.FeedParser 解析消息并返回一个email.message.Message 对象:

将其视为字典,以获取像 Subject 这样的标题字段。 使用is_multipart() 检查它是否是多部分的,因此可能有附件(或者它可能只是纯文本+ html 消息)。 使用walk() 方法递归遍历所有多部分子消息。以attachment 开头的Content-Disposition 标头的子邮件是附件,您可以使用get_payload() 获取其内容。

【讨论】:

我发现 harrybailey.com/2009/02/send-or-pipe-an-email-to-a-php-script 有一条评论,似乎暗示消息是作为字符串传递的,所以我认为这应该可行。

以上是关于通过管道将电子邮件发送到 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

通过 php 脚本定期发送电子邮件

Google Apps 脚本 - 将 gmail 中的数据提取到电子表格中

电子邮件管道到 PHP 脚本并转发到另一封电子邮件

通过 Python Google Cloud Function 发送电子邮件的最佳方式是啥?

将电子邮件传送到程序并防止快速提交垃圾邮件

Python通过smtp服务发送电子邮件给指定用户(适用于Zabbix邮件报警)