将imaplib输出格式化为表视图而不是lis

2024-04-26 17:41:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从我们的imap服务器检索我的电子邮件,发现使用imaplib是一种方法。所以我找到了这个链接https://gist.github.com/robulouski/7441883,它展示了如何使用imaplib的基础知识。我按照代码分别更改了一些值,这样我就可以登录我的电子邮件帐户。你知道吗

我仍在努力学习,但到目前为止,这是我修改过的代码:

import sys
import imaplib
import getpass
import email
import datetime

email_address = 'test@companyemail.net'
password = 1234

M = imaplib.IMAP4('mail.companyemail.net')

try:
    M.login(email_address, password)
    print "LOGIN SUCCESS!"
except imaplib.IMAP4.error:
    print "LOGIN FAILED!!"
    # ... exit or deal with failure...


def process_mailbox(M):
  rv, data = M.search(None, "ALL")
  if rv != 'OK':
      print "No messages found!"
      return

  for num in data[0].split():
      rv, data = M.fetch(num, '(RFC822)')
      if rv != 'OK':
          print "ERROR getting message", num
          return

      msg = email.message_from_string(data[0][1])
      print 'Message %s: %s' % (num, msg['Subject'])
      #print 'Raw Date:', msg['Date']
      date_tuple = email.utils.parsedate_tz(msg['Date'])
      if date_tuple:
          local_date = datetime.datetime.fromtimestamp(
              email.utils.mktime_tz(date_tuple))
          print "Local Date:", \
              local_date.strftime("%a, %d %b %Y %H:%M:%S")

rv, data = M.select("INBOX")
if rv == 'OK':
    print "Processing mailbox...\n"
    process_mailbox(M)

以上代码的输出为:

OK ['Logged in']
Processing mailbox...

Message 1: test
Raw Date: Fri, 05 Aug 2016 05:38:17 +0800
Local Date: Thu, 04 Aug 2016 14:38:17
Message 2: test email 2
Raw Date: Thu, 4 Aug 2016 14:48:35 -0700
Local Date: Thu, 04 Aug 2016 14:48:35
Message 3: test email 3
Raw Date: Fri, 05 Aug 2016 05:52:33 +0800
Local Date: Thu, 04 Aug 2016 14:52:33
Message 4: Fwd: test email 2
Raw Date: Fri, 05 Aug 2016 05:54:54 +0800
Local Date: Thu, 04 Aug 2016 14:54:54
Message 5: test
Raw Date: Wed, 10 Aug 2016 05:28:02 +0800
Local Date: Tue, 09 Aug 2016 14:28:02

我想知道是否有可能以表格格式输出它,这样看起来像:

|   Message     |               Raw Date            |       Local Date          |
| test          | Fri, 05 Aug 2016 05:38:17 +0800   | Thu, 04 Aug 2016 14:38:17 |   
| test email 2  | Thu, 4 Aug 2016 14:48:35 -0700    | Thu, 04 Aug 2016 14:48:35 |

等等。。。你知道吗

谢谢你的帮助。:)


Tags: testimportmessagedatadaterawemaillocal