【问题标题】:Read gmail and printing it [duplicate]阅读gmail并打印它[重复]
【发布时间】:2019-11-06 21:00:26
【问题描述】:

我只想在 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 的全部信息,但我不需要。

【问题讨论】:

标签: python python-3.x imaplib


【解决方案1】:

我想你正在寻找它:

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()

详情在这里:link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-02
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2012-12-19
    • 2023-04-01
    相关资源
    最近更新 更多