【发布时间】:2013-06-10 19:15:24
【问题描述】:
我最近购买了一个 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吗? -
是的,没有任何问题
-
那么它可能比libssl更与python相关。对我来说,它闻起来不兼容的密码配置。我会尝试那样挖掘。
标签: python openssl raspberry-pi smtplib raspbian