python - 阅读gmail并打印
问题描述
我只想在 Python 中打印收到的 gmail 的发件人姓名和消息。我尝试了下面给出的代码。请帮帮我。
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('raskarakash2017@gmail.com', '02426236032')
mail.list()
mail.select('inbox')
typ, data = mail.search(None, 'ALL')
for num in data[0].split():
typ, data = mail.fetch(num, '(RFC822)')
print ('Message %s\n%s\n' % (num, data[0][1]))
mail.close()
mail.logout()
此代码打印 gmail 的全部信息,但我不需要。
解决方案
我想你正在寻找它:
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('raskarakash2017@gmail.com', '02426236032')
mail.list()
mail.select('inbox')
typ, data = mail.search(None, 'ALL')
for num in data[0].split():
typ, data = mail.fetch(num, '(RFC822)')
for response_part in data:
if isinstance(response_part, tuple):
msg = email.message_from_string(response_part[1])
varSubject = msg['subject']
varFrom = msg['from']
#remove the brackets around the sender email address
varFrom = varFrom.replace('<', '')
varFrom = varFrom.replace('>', '')
#add ellipsis (...) if subject length is greater than 35 characters
if len( varSubject ) > 35:
varSubject = varSubject[0:32] + '...'
print '[' + varFrom.split()[-1] + '] ' + varSubject
mail.close()
mail.logout()
详细信息在这里:链接
推荐阅读
- python - ProactorEventLoop - ValueError:循环参数必须与 Future 一致
- react-native - 如何在 PanResponder 中使用 onPanResponderMove 来防止崩溃?
- laravel-5 - Laravel 将 double 或 float 作为整数返回
- javascript - 我正在尝试在另一个映射函数中映射一个数组我的代码没有同步运行
- reactjs - 修改 dotnetify react js 以在 cordova 应用程序中使用(更改 dotnetify.react.connect 的路径)
- angular - 动态更改组件角度 6 中的数据
- javascript - 组件重新渲染时“剩余”代码执行会发生什么?
- android - android中按钮的自定义形状设计
- python - 为什么变量可以添加到'.json'和'.text'
- asp.net-web-api - 如何限制 kubernetes pod 中 .net 核心应用程序的内存大小?