Спасибо, но не получается. Код:
# -*- coding: cp1251 -*-
import smtplib, os
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import Encoders
# отправитель
me = 'me@bk.ru'
# получатель
you = 'you@gmail.com'
# текст письма
text = 'Это тестовое письмо!\nС наилучшими пожеланиями!'
text = unicode(text, "cp1251").encode("koi8-r")
# заголовок письма
subj = 'Привет от Python'
# вложение
myfile = 'C:\\Temp\\cshadow.zip'
# параметры SMTP-сервера
server = "194.67.23.114" # "smtp.bk.ru"
port = 25
user_name = "me"
user_passwd = "pass"
# msg = MIMEText(text, "", "cp1251")
msg = MIMEMultipart()
msg['Subject'] = subj
msg['From'] = me
msg['To'] = you
msg.attach(MIMEText(text, "", "cp1251"))
part = MIMEBase('application', "octet-stream")
part.set_payload(open(myfile,"rb").read())
Encoders.encode_base64(part)
part.add_header('Content-Disposition',
'attachment; filename="%s"' % os.path.basename(myfile))
msg.attach(part)
s = smtplib.SMTP(server, port)
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(me, you, msg.as_string())
s.quit()
Почта уходит, но вместо отправленного в почтовом клиенте получаю “Mail delivery failed: returning message to sender”:
SMTP error from remote mailer after end of data:
host gmail-smtp-in.l.google.com :
552 5.7.0 Illegal Attachment y37si705888iky
Самое смешное, что если посылать какой-нибудь boot.ini - всё доходит, zip - не доходит.
И по кодировкам. Я вообще не понимаю, с какого перепугу работает только вот так:
text = unicode(text, “cp1251”).encode(“koi8-r”)У меня WinXP SP2, ActivePython 2.5. Откуда взялась эта “koi8-r” ??????