1

最近、いくつかの Python スクリプトを実行するために Raspberry Pi を購入しましたが、それを移植すると、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 を実行しています。

4

1 に答える 1