Python - пересылка электронной почты IMAP с вложениями (imaplib, smtplib) - PullRequest
2 голосов
/ 07 апреля 2011

У меня проблемы с пересылкой почты с вложениями. Может кто-то указать мне верное направление? Я предполагаю, что это в утверждении Fetch, но я не уверен.

import sys
import uuid
import re
import smtplib
import email

address = ''
username = ''
password = ''

def checkMail():
    M = imaplib.IMAP4_SSL(address)
    M.login(username, password)
    M.select("INBOX", readonly=True)
    typ, data = M.search(None, 'Unseen')

    messageCount = len(data[0].split())    
    print('messageCount: %', messageCount)
    if messageCount > 0:     
        for num in data[0].split():
            typ, data = M.fetch(num, '(BODY[TEXT])')
            foundAt = data[0][1].find('Content-Type: application')
            if(foundAt > 0):
                print('attachmentfound')
                sendMail(data[0][1])


    M.close()
    M.logout()       


def sendMail(raw_message):

    toAddress = ''
    fromAddress = ''
    LOGIN    = ''
    PASSWORD = ''


    server = smtplib.SMTP('', 587)
    server.set_debuglevel(1)
    server.ehlo()
    server.starttls()
    server.login(LOGIN, PASSWORD)
    server.sendmail(fromAddress, toAddress, raw_message)
    server.quit()

def main():
    checkMail()

main()

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

Это была выборка ... добавление выборки для (BODY []) сделало свое дело.

0 голосов
/ 07 апреля 2011

Если вы хотите использовать imaplib, почему бы просто не получить все сообщение (RFC822)?Посмотрите этот похожий вопрос:

Как получить тело письма, используя imaplib в python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...