Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9044057
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T10:53:29+00:00 2026-06-16T10:53:29+00:00

I read this already and wrote this script to fetch body for emails in

  • 0

I read this already and wrote this script to fetch body for emails in some mail box which title begins with ‘$’ and is sent by some sender.

import email, getpass, imaplib, os

detach_dir = "F:\PYTHONPROJECTS" # where you will save attachments
user = raw_input("Enter your GMail username --> ")
pwd = getpass.getpass("Enter your password --> ")

# connect to the gmail imap server
m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user, pwd)

m.select("PETROLEUM") # here you a can choose a mail box like INBOX instead
# use m.list() to get all the mailboxes

resp, items = m.search(None, '(FROM "EIA_eLists@eia.gov")')
items = items[0].split() # getting the mails id

my_msg = [] # store relevant msgs here in please
msg_cnt = 0
break_ = False
for emailid in items[::-1]:
    resp, data = m.fetch(emailid, "(RFC822)")
    if ( break_ ):
        break 
    for response_part in data:
      if isinstance(response_part, tuple):
          msg = email.message_from_string(response_part[1])
          varSubject = msg['subject']
          if varSubject[0] == '$':
              msg_cnt += 1
              my_msg.append(msg)
              print msg_cnt
              print email.message_from_string(response_part[1])
              if ( msg_cnt == 5 ):
                  break_ = True 

if I print email.message_from_string(response_part[1]), I can see it contains first information (header, from, to, date…), the the full text body. But, I cannot fetch the body itself. email.message_from_string(response_part[0]) prints mails IDS, and email.message_from_string(response_part[2]) is out of range. email.message_from_string(response_part[1][0]) neither is doing it.

Thanks and regards.

UPDATE

Now, I can almost have body text. However, it is still spoilt by an information statement coming first. I get as a result

From nobody Tue Dec 25 11:42:58 2012

US=3D$4.030

EastCst=3D$4.036

NewEng=3D$4.205

CenAtl=3D$4.149

LwrAtl=3D$3.921

Midwst=3D$3.984

GulfCst=3D$3.945

RkyMt=3D$4.195

WCst=3D$4.187

CA=3D$4.268

and I would like to get rid of From nobody Tue Dec 25 11:42:58 2012 which is information. I know I could parse text look for first relevant line… i know.

The code for achieving so (to plug in my first sample) is

  if varSubject[0] == '$':
      r, d = m.fetch(emailid, "(UID BODY[TEXT])")
      msg_cnt += 1
      my_msg.append(msg)
      print email.message_from_string(d[0][1])

Do you have a better way (no info string) ??? More: what is the command to now fetch the date ? I know that I can do varDate = msg['date'] where suited above, but how to just fetch day-month-year ? THANKS

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T10:53:31+00:00Added an answer on June 16, 2026 at 10:53 am

    You can get the contents of the body by doing any of the following

    msg.as_string()
    str(msg)
    repr(msg)
    

    http://docs.python.org/2.7/library/email.message.html#email.message.Message

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Scenario Having already read a post on this on the same site, which didn't
I have read some threads regarding this and I did already take steps to
I've already read this question and this question and this , but none of
I already read this trick in the cookbook: http://book.cakephp.org/2.0/en/models/model-attributes.html#usetable Now I would like to
Possible Duplicate: What’s with the love of dynamic Languages I have already read this
I read through many of solutions of this problem already, but I still can't
those of you who read my previous questions may already know this: I'm currently
I already read many article about this issue in here, SO. I just want
I've already read through the similar questions on this topic, but none of them
I have already read some info about his issue on the web, but I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.