Недавно я купил Raspberry Pi для запуска некоторых скриптов Python, но когда я портировал его, функция, которую я написал для отправки электронных писем через Windows Live, внезапно начала выдавать ошибку SSL после успешного рукопожатия, а именно:
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
После долгих поисков я нашел много людей с одной и той же ошибкой, но все в совершенно разных ситуациях. Самое важное, что я смог найти, это то, что это проблема с определенной версией OpenSSL, но я ничего не смог найти о версии, работающей на моем Pi (1.0.1e).
Функция (которая прекрасно работает на Win7):
def wlive(adr_to, adr_fro, adr_pass, adr_subj, adr_file):
saveout = smtplib.stderr
logger = open('wlive.log', 'w')
smtplib.stderr = logger
msg = MIMEMultipart()
msg['Subject'] = adr_subj
msg['From'] = adr_fro
msg['To'] = adr_to
if adr_file != None:
# subtype recognition based on extension
filext = os.path.splitext(adr_file)[1]
if filext == '.png':
subt = 'png'
else:
subt = 'jpeg'
fp = open(adr_file, 'rb')
img = MIMEImage(fp.read(), subt)
fp.close()
msg.attach(img)
try:
server = smtplib.SMTP('smtp.live.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(adr_fro, adr_pass)
server.sendmail(adr_fro, adr_to, msg.as_string())
server.quit()
return True
except Exception, e:
print 'wlive exception:\n\n', str(e)
return False
smtplib.stderr = saveout
logger.close()
Я запускаю полностью обновленный и обновленный образ Raspbian «Wheezy» и Python 2.7.3.
openssl version
, затемopenssl s_client -connect smtp.live.com:587 -starttls smtp
получается250 OK
? - person Michael Tabolsky   schedule 10.06.2013