- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我使用 imapblib
和 email
根据特定条件(即发件人和主题)检索特定电子邮件。
import imaplib
import email
FROM_EMAIL = "##########@gmail.com"
FROM_PWD = "##########"
SMTP_SERVER = "imap.gmail.com"
mail = imaplib.IMAP4_SSL(SMTP_SERVER)
mail.login(FROM_EMAIL,FROM_PWD)
mail.select("INBOX")
result, data2 = mail.search(None,'(FROM "####" SUBJECT "####")')
ids = data2[0]
id_list = ids.split()
latest_email_id = id_list[-1]
result, email_data = mail.fetch(latest_email_id, "(RFC822)")
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
在电子邮件中,在我的桌面上使用 gmail,有一个如下所示的链接(请注意,# 字符代表敏感信息):
# This is how the link is supposed to appear
https://inreach.garmin.com/textmessage/txtmsg?extId=e3e7d4c2-fab4-43ad-93de-f9dedca8280#####=##########%40gmail.com
当打印 python 检索到的电子邮件文本时,我得到了这个错误的链接:
email_text = list(email_message.walk())[1].get_payload()
print(email_text) # Note(I am not printing the whole email for privacy reasons)
# The link as python has retrieved it appears like this:
https://inreach.garmin.com/textmessage/txtmsg?extId=3De3e7d4c2-fab4-43ad-93=de-f9dedca8280#####=3D##########%40gmail.com
Python 以某种方式在 93
和 de
之间添加一个 =
字符,并且还添加了几个 3D
字符.
Python 在做什么?关于如何解决这个问题的想法?
最佳答案
您看到的是quoted-printable encoding 。这是一种将任意字节编码为 ASCII 文本以便通过例如 ASCII 文本传输的方法。电子邮件。这种编码的后果如下:
'='
字符都会编码为 '=3D'
(因为 0x3d 是 '='
的字符代码)。'=\n'
(基本上是解码器将删除的转义换行符),行将换行为 76 个字符。我敢打赌这些换行符之一已插入到您的链接中间。您可以使用quopri
module将编码文本转换回原始字节。来自标准库。 Python 的某些部分 email handling library也可以为您执行此操作。
关于python - imaplib 错误地将 `=` 和 `3D` 字符添加到电子邮件中的 URL 文本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47781743/
美好的一天,我正在尝试使用 imaplib 连接到交换服务器。下面是代码: import imaplib imap_host = 'example.smth.smth.kz' mail_login =
我正在使用 imaplib 阅读一些电子邮件。这段代码在 Pycharm 中运行没有错误。我已经使用 cx_Freeze 使该程序成为可执行文件,现在我收到一个错误,该错误可追溯到 cx_Freeze
我正在使用 Django 构建邮件客户端,并使用 imaplib 提取电子邮件。到目前为止,我可以在每个 imap 服务器中选择收件箱文件夹,因为它的名称是“INBOX”。但是当涉及到选择其他文件夹,
我正在尝试阅读特定日期和时间的所有电子邮件。 mail = imaplib.IMAP4_SSL(self.url, self.port) mail.login(user, password) mail
我正在开发一个从电子邮件中收集数据的功能,并有一个开关可以将消息标记为未看到。在开发过程中它开始失败我不知道为什么。我在文档中查找了它,我搜索了 stackoverflow(找到了 this 线程,但
我在使用 imap 时遇到了一些问题。我想做的是编写一个脚本,使用 imap 连接到我们的语音邮件服务器并下载所有消息。我已经能够使用个人帐户登录,但是当我尝试使用“proxyauth”以管理员身份登
我有一个令我困惑的问题。我正在使用 imaplib 在“已发送”文件夹中搜索电子邮件,然后将它们导出到 csv 中。它工作得很好,只是它没有收到所有电子邮件。当天午夜到下午 6 点似乎可以收到电子邮件
我正在使用 imaplib 在我的 python 命令窗口中读取 gmail 邮件。唯一的问题是电子邮件是否带有换行符和回车符。此外,文本的格式似乎不正确。它返回的不是金额:36.49 美元,而是 =
我正在处理邮件应用程序并遇到 Python imaplib 的大问题。 这是我尝试用来登录邮件服务器的代码。 M = imaplib.IMAP4(self.server,int(self.port))
我有一个 python 脚本,用于检查 Gmail 的 IMAP 服务器上的电子邮件,它显示服务器上的最新电子邮件。但是,该电子邮件地址正在接收来自多个不同帐户的电子邮件。我该怎么做才能使用此脚本并让
我正在为我的项目使用 imaplib,因为我需要访问 gmails 帐户。事实:使用 gmail 的标签,每封邮件可能位于任意数量的文件夹/邮箱/标签上。 问题是我想从每封邮件中获取每一个标签。 我想
在这里和互联网上搜索,有很多关于如何将消息标记为 SEEN 的示例,即使这是使用 imap 自动完成的。 但是如何将电子邮件标记为 UNSEEN 或 UNREAD。 我有一个 python 脚本,它接
这是我程序的相关部分: import imaplib ... try: M.expunge() M.close() M.logo
这是我程序的相关部分: import imaplib ... try: M.expunge() M.close() M.logo
洛, imaplib 存在一些问题。我正在尝试将 gpg 文件的内容放入电子邮件正文中。 加密文件看起来像这样: ÕþëÂüÿΩfXаÕ庼H»[ßÖq«Ì5ßö 我的代码看起来像这样: gpg
我使用此代码从我的电子邮件中删除一条消息: mail.store(id, '+FLAGS', '\\Deleted') mail.expunge() 此代码返回“Ok”。 ('OK', [None])
执行响应下方显示的代码后,我收到以下响应。我如何解析此响应以获取发件人 (John Smith) 和主题 (test)? [('13010 (BODY[HEADER.FIELDS (SUBJECT F
您好,我想知道是否有人可以帮助我提取 Gmail 中电子邮件的 header 。我有这段代码: import imaplib M = imaplib.IMAP4('imap.gmail.com') M
我希望 imaplib 显示 IMAP 服务器证书的 md5(或 SHA) key ,以确保没有 MITM(我不信任 CA,因此在这种情况下验证链是不够的)。 显示整个证书也可以。 如果有任何帮助,我
概述:在 Python 中使用 imaplib 通过 imap 获取电子邮件时,返回的有效负载是电子邮件元组列表...具有单个字节 b')' 在每个元组之间。 我使用您的标准 imaplib fetc
我是一名优秀的程序员,十分优秀!