如何使用 Python IMAP 从 Gmail 邮件中删除“来自无人”和“内容类型”?

2024-01-27

尽管我在从很多网站进行大量搜索后完成了大部分工作,但我仍然无法获得我想要的正确输出。

Code:

import imaplib

import smtplib

import email

mail=imaplib.IMAP4_SSL("imap.gmail.com")

mail.login("**************@gmail.com","********")

mail.select('inbox')

type,data=mail.search(None,'ALL')

mail_ids=data[0]

id_list=mail_ids.split()

for i in range(int(id_list[-1]),int(id_list[0])-1,-1):
    
    typ,data=mail.fetch(i,'(RFC822)') 
        for response_part in data :
            if isinstance(response_part,tuple):
                msg=email.message_from_string(response_part[1])
                email_from=msg['from']
                email_subj=msg['subject']
                c=msg.get_payload(0)
                print email_from
                print "subj:",email_subj
                print c

Output:

Bharath Joshi <[email protected] /cdn-cgi/l/email-protection> subj: hehe From nobody Tue
Dec 25 15:48:52 2018 Content-Type: text/plain; charset="UTF-8"

hello444444444

Bharath Joshi <[email protected] /cdn-cgi/l/email-protection> subj:  From nobody Tue Dec 25
15:48:52 2018 Content-Type: text/plain; charset="UTF-8"

33333

Bharath Joshi <[email protected] /cdn-cgi/l/email-protection> subj:  From nobody Tue Dec 25
15:48:53 2018 Content-Type: text/plain; charset="UTF-8"

hello--22

困扰我的是我得到的额外的东西,即

“没有人......”和“内容类型......”

我怎样才能将它们删除?


啊,电子邮件的“美丽”......显然您面临着多部分电子邮件,对于这些,get_payload()方法还输出标题。你需要使用msg.walk()像这样:

for response_part in data :
    if isinstance(response_part,tuple):
        msg=email.message_from_string(response_part[1])
        print "subj:", msg['subject']
        print "from:", msg['from']
        print "body:"
        for part in msg.walk():
            if part.get_content_type() == 'text/plain':
                print part.get_payload()

要获得更完整的答案,请查看这个 stackoverflow 答案 https://stackoverflow.com/questions/1463074/how-can-i-get-an-email-messages-text-content-using-python

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python IMAP 从 Gmail 邮件中删除“来自无人”和“内容类型”? 的相关文章

随机推荐

  • 为有效信用卡生成随机数的好方法是什么?

    我正在用 Java 开发一套用于验证和使用信用卡的工具 到目前为止 我支持 卢恩验证 日期验证 简单到期 基于品牌 Visa MasterCard 等 的卡代码长度验证 CVV CVC CID 信用卡号长度验证 基于品牌 BIN IIN 验
  • pandas groupby 可以将 DataFrame 转换为 Series 吗?

    我想使用 pandas 和 statsmodels 在数据帧的子集上拟合线性模型并返回预测值 但是 我无法找出正确的 pandas 习惯用法 这是我正在尝试做的事情 import pandas as pd import statsmodel
  • 如何为 AWS Lambda nodejs 运行时构建单个 js 文件

    我们正在研究一个项目 框架 https github com jaws stack JAWS tree v1 0有助于在 AWS Lambda 中部署和维护代码 我想将 lambda 函数的所有 node js 代码构建 捆绑到一个 js
  • Firebase - 如何一次删除多个条目?

    我该如何删除all给定推送 ID 的条目 例如 假设KoxoxwTqfb50E1Gvi9F推送 ID 位于我的数据库的许多位置 即在许多键下 我想删除所有条目KoxoxwTqfb50E1Gvi9F立即而不是静态删除所有条目 因为我知道它们的
  • 如何在 useEffect 中使用 setState 进行 API 调用后执行函数?

    我是一个 React 新手 学习了 30 个小时 有一些基本的 Javascript 背景 现在我正在学习一门课程 并试图 离开 这条路 但我很好奇如何实现我的预期目标 有一个 Memegenerator 它在渲染开始时从 API 获取所有
  • Magento 中不允许序列化?

    当我在 Magento 中打开缓存时 出现以下异常 不允许序列化 Mage Core Model Layout Element 异常发生在app code core Mage Page Block Template Links php 在线
  • 使用 Python 放置 PMML

    我有一个简单的PMML http en wikipedia org wiki Predictive Model Markup Language我想要的文件PUT到评分服务器 这里是curl call curl X PUT data bina
  • 如何使用 kubectl cmd 获取 git commit sha1?

    如何使用 kubectl 命令获取特定 pod 的提交 sha1 例如 kubectl get git commit sha1 pod name 目前还没有办法使用 kubectl 来实现你想要的 他们唯一可能的方法是如果你的 docker
  • 在 matplotlib 中向日期格式的时间序列添加垂直线

    我正在尝试向时间序列图中添加一条红色垂直线 其中 x 轴格式为 Y m d 我想添加该行的日期是 2013 年 5 月 14 日 只需在 plt show 之前添加一行 plt axvline x 2013 05 14 or plt axv
  • 如何在 C# 中对文件进行哈希处理

    如何使用 C 对文件进行哈希处理 有什么可用的 md5 crc sha1 等 是否有我应该继承的接口 我想对多个文件进行校验和并将其存储在数据库中 并使用我自己的两个校验和 哈希 1 如何使用 C 对文件进行哈希处理 您可以使用 NET 类
  • Rollup:从外部模块捆绑/嵌入 wasm 代码

    使用 rollup 我尝试捆绑一个 typescript 库 该库导入并调用包含 wasm 文件的 npm 模块 只有生成的包不包含 wasm 文件内容的痕迹 我怎样才能强制它捆绑网络程序集 这是我尝试过的关键文件 typescript s
  • 深度查找或搜索 JSON 中任何级别的键并替换其在 C# 中的值

    我也被一个问题所困扰 我能够将嵌套的 JSON 转换为 key Value 但现在我想将其转换回原来的 json 格式 由于我的问题 我无法使用 C 对象模型来执行此操作 因为我拥有的 JSON 文件是动态的 并且其结构会随着时间的推移而变
  • Ruby Webrick HTTP 身份验证

    我怎样才能做同样的身份验证工作这一页 http microjet ath cx webrickguide html HTTP Authentication html使用这样的子类 class Configuration lt HTTPSer
  • 为什么 std::iterator 被弃用?

    模板类std iterator http en cppreference com w cpp iterator iterator在 C 17 中已被弃用 为什么这样 这是一个方便的方法来确保std iterator traits http
  • d3.js v4,如何在鼠标悬停时有一条线跟随鼠标,同时也有一个圆圈跟随路径?

    这是我的 js 小提琴 https jsfiddle net DerNalia 3wzLv9yg 1 https jsfiddle net DerNalia 3wzLv9yg 1 我一直在尝试从这里解释代码 带有鼠标悬停工具提示的多系列折线
  • Bootstrap打印CSS去除背景颜色

    当我使用引导程序时 当我尝试打印页面时 它会从所有内容中删除背景颜色 我网站上的几乎所有内容都使用引导类 因此我想避免在引导程序之外使用大量手动 CSS 我发现 bootstrap 使用 media print删除背景颜色 我也使用引导主题
  • std::integral_constant 的否定

    抱歉问了这么简单的问题 但我无法轻松找到答案 谷歌没有说任何关于 C 否定积分常量 和类似查询的有趣内容 C 11 中是否有任何特征使得std true type from std false type反之亦然 换句话说 我想要一些更具可读
  • 使用模拟获取所有日志输出

    我想用模拟获取所有日志输出 我搜索过 但是 只找到了显式模拟logging info或logging warn的方法 我需要所有输出 无论设置的日志记录级别如何 def test foo def my log logs append wit
  • Nginx 重定向到错误的虚拟主机

    我的一个 nginx conf 文件中有大约 1300 个虚拟主机 所有这些都具有以下布局 它们在虚拟主机文件中依次列出 现在我的问题是有时我的浏览器将 site2 重定向到 site1 由于某种原因 域名不匹配 看起来 nginx 总是重
  • 如何使用 Python IMAP 从 Gmail 邮件中删除“来自无人”和“内容类型”?

    尽管我在从很多网站进行大量搜索后完成了大部分工作 但我仍然无法获得我想要的正确输出 Code import imaplib import smtplib import email mail imaplib IMAP4 SSL imap gm