- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 imaplib 在我的 python 命令窗口中读取 gmail 邮件。唯一的问题是电子邮件是否带有换行符和回车符。此外,文本的格式似乎不正确。它返回的不是金额:36.49 美元,而是 =2436.49。我怎样才能清理这段文字?谢谢!
示例电子邮件内容:
r\nItem name: Scanner\r\nItem=23: 130585100869\r\nPurchase Date: Oct 7, 2011\r\nUnit Price: =2436.49 USD\r\nQty: 1\r\nAmount: =2436.49USD\r\nSubtotal: =2436.49 USD\r\nShipping and handling: =240.00 USD\r\nInsurance - not offered
代码:
import imaplib
import libgmail
import re
import email
from BeautifulSoup import BeautifulSoup
USER = 'email@gmail.com'
PASSWORD = 'password'
#connecting to the gmail imap server
imap_server = imaplib.IMAP4_SSL('imap.gmail.com', 993)
imap_server.login(USER, PASSWORD)
imap_server.select('Inbox')
typ, response = imap_server.search(None, '(SUBJECT "payment received")')
Data = []
for i in response[0].split():
results, data = imap_server.fetch(i, "(RFC822)")
Data.append(data)
break
for i in Data:
print i
最佳答案
数据采用可引用打印编码,这是一个小型数据按摩器,可以满足您的需求:
text = '''\r\nPurchase Date: Oct 7, 2011\r\nUnit Price: =2436.49 USD\r\nQty: 1\r\nAmount: =2436.49 USD\r\nSubtotal: =2436.49 USD\r\nShipping and handling: =240.00 USD\r\nInsurance - not offered : ----\r\n----------------------------------------------------------------------\r\nTax: --\r\nTotal: =2436.49 USD\r\nPayment: =2436.49 USD\r\nPayment sent to: emailaddress=40gmail.com\r\n----------------------------------------------------------------------\r\n\r\nSincerely,\r\nPayPal\r\n=20\r\n----------------------------------------------------------------------\r\nHelp Center:=20\r\nhttps://www.paypal.com/us/cgi-bin/helpweb?cmd=3D_help\r\nSecurity Center:=20\r\nhttps://www.paypal.com/us/security\r\n\r\nThis email was sent by an automated system, so if you reply, nobody will =\r\nsee it. To get in touch with us, log in to your account and click =\r\n=22Contact Us=22 at the bottom of any page.\r\n\r\n'''
raw_data = text.decode("quopri") #replace =XX for the real characters
data = [map(str.strip, l.split(":")) for l in raw_data.splitlines() if ": " in l]
print data
# [['Purchase Date', 'Oct 7, 2011'], ['Unit Price', '$36.49 USD'], ['Qty', '1'], ['Amount', '$36.49 USD'], ['Subtotal', '$36.49 USD'], ['Shipping and handling', '$0.00 USD'], ['Insurance - not offered', '----'], ['Tax', '--'], ['Total', '$36.49 USD'], ['Payment', '$36.49 USD'], ['Payment sent to', 'emailaddress@gmail.com'], ['Help Center', ''], ['Security Center', '']]
您的数据格式更易于处理,希望对您有所帮助。
编辑:让它更可爱:
>>> cooked = dict(data)
>>> print cooked["Unit Price"]
$36.49 USD
关于python imaplib 读取gmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385979/
美好的一天,我正在尝试使用 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
我是一名优秀的程序员,十分优秀!