我最近购买了一个 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