Comment faire pour lire un e-mail à l'aide de Python 3
Maintenant, je suis ici
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'password')
mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.
#Get an email
result, data = mail.uid('fetch', b'1', '(RFC822)')
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
maintype = email_message.get_content_maintype()
#HERE COMES TROUBLES - if hmtl will be base64 string
if maintype == 'multipart':
for part in email_message.get_payload():
print(part.get_content_maintype())
if part.get_content_maintype() == 'text':
html = str(part.get_payload())
elif maintype == 'text':
html = str(email_message.get_payload())
#Now I Can parse HTML
if html is not None:
soup = BeautifulSoup(html, 'html.parser')
certaines lettres viennent avec le codage base64. comment le décoder?
base64.b64encode(chaîne_quelconque) - n'aide pas
- raw_email = data[0][1].. vous avez été près de là.yuji.wordpress.com/2011/06/22/...
- Merci! Je commençais à partir de ce tutoriel. Mais je crois que je octets de la chaîne de sorte que son un peu différent. Pouvez-vous m'indiquer de code final?
- Vous pouvez coller ce qu'il est sortie depuis raw_email? Ajoutez cette ligne à la fin de votre script ......print(raw_email)
- J'ai commencé à comprendre, mais comment .get_payload() travail dans des mots faciles?
- e-mail.get_payload() retourne une Liste d'Objets de Message docs.python.org/2/library/...
- Merci tout le monde!
- J'ai posté votre solution vers le bas ci-dessous. Veuillez accepter si cela a fonctionné pour vous, afin que les autres utilisateurs à votre problème pouvez utiliser.
- Oui, il fonctionne! Maintenant le Problème est qu'une partie.get_payload() - ressemble à: /XLCDe1M8g0M/a18/M0cXUIMnawsXWwdTYCs7Fz8LIz8TJzc/T1Mkg19nCz9LBIM/Ezs/ etc. Si je l'obtiens, c'est une chaîne base64? Comment puis-je décoder html?
- Dans votre post original peut vous coller ce que votre actuellement voir sur votre console?
- Voulez-vous dire de la manière dont les données des regards?
- Il doit être lu d'une amende d' .get_payload. Pouvez-vous coller votre nouveau code en haut?
- Fait! base64 chaîne trop longue trop coller ici.
Vous devez vous connecter pour publier un commentaire.
**Je n'ai pas écrit cette prise de https://yuji.wordpress.com/2011/06/22/python-imaplib-imap-example-with-gmail/