ошибка электронной почты Python - PullRequest
2 голосов
/ 22 декабря 2009

Я пытаюсь отправить файл результатов по электронной почте. Я получаю ошибку импорта:

Traceback (most recent call last):  
  File "email_results.py", line 5, in ?  
    from email import encoders  
ImportError: cannot import name encoders  

Я также не уверен, как заставить это подключиться к серверу. Кто-нибудь может помочь? Спасибо

#!/home/build/test/Python-2.6.4
import smtplib
import zipfile
import tempfile
from email import encoders
from email.message import Message
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart

def send_file_zipped(the_file, recipients, sender='myname@myname.com'):
 zf = tempfile.TemporaryFile(prefix='mail', suffix='.zip')
 zip = zipfile.ZipFile(zf, 'w')
 zip.write(the_file)
 zip.close()
 zf.seek(0)

 # Create the message
 themsg = MIMEMultipart()
 themsg['Subject'] = 'File %s' % the_file
 themsg['To'] = ', '.join(recipients)
 themsg['From'] = sender
 themsg.preamble = 'I am not using a MIME-aware mail reader.\n'
 msg = MIMEBase('application', 'zip')
 msg.set_payload(zf.read())
 encoders.encode_base64(msg)
 msg.add_header('Content-Disposition', 'attachment',filename=the_file + '.zip')

 themsg.attach(msg)
 themsg = themsg.as_string()

 # send the message
 smtp = smtplib.SMTP()
 smtp.connect()
 smtp.sendmail(sender, recipients, themsg)
 smtp.close()

1 Ответ

9 голосов
/ 22 декабря 2009

Проблема не в том, что вы не можете подключиться к серверу, а в том, что вы по какой-то причине не можете импортировать email.encoders У вас случайно есть файл с именем email.py или email.pyc?

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