Skip to content Skip to sidebar Skip to footer

Get Sender Email Address With Python IMAP

I have this python IMAP script, but my problem is that, every time I want to get the sender's email address, (From), I always get the sender's first name followed by their email ad

Solution 1:

Just one more step, using email.utils:

email.utils.parseaddr(address)

Parse address – which should be the value of some address-containing field such as To or Cc – into its constituent realname and email address parts. Returns a tuple of that information, unless the parse fails, in which case a 2-tuple of ('', '') is returned.

Note: originally referenced rfc822, which is now deprecated.


Solution 2:

to = email.utils.parseaddr(msg['cc'])

This works for me.


Solution 3:

My external lib https://github.com/ikvk/imap_tools let you work with mail instead read IMAP specifications.

from imap_tools import MailBox, A

# get all emails from INBOX folder
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX') as mailbox:
    for msg in mailbox.fetch(A(all=True)):
        print(msg.date, msg.from_, msg.to, len(msg.text or msg.html))

msg.from_, msg.to - parsed addresses, like: 'Sender@ya.ru'


Post a Comment for "Get Sender Email Address With Python IMAP"