Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask电子邮件支持-发送电子邮件时获取SSLError[Errno 1]_Python_Email_Python 2.7_Ssl_Flask - Fatal编程技术网

Python Flask电子邮件支持-发送电子邮件时获取SSLError[Errno 1]

Python Flask电子邮件支持-发送电子邮件时获取SSLError[Errno 1],python,email,python-2.7,ssl,flask,Python,Email,Python 2.7,Ssl,Flask,我正在尝试为Flask应用程序设置电子邮件服务器。我收到一封信。这是我第一次学习任何类型的web开发 以下是我如何配置服务器的: # mail server settings MAIL_SERVER = 'smtp.mail.yahoo.com' MAIL_PORT = 587 MAIL_USE_TLS = False MAIL_USE_SSL = True MAIL_USERNAME = 'email@yahoo.com' MAIL_PASSWORD = 'password' # admi

我正在尝试为Flask应用程序设置电子邮件服务器。我收到一封信。这是我第一次学习任何类型的web开发

以下是我如何配置服务器的:

# mail server settings
MAIL_SERVER = 'smtp.mail.yahoo.com'
MAIL_PORT = 587
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_USERNAME = 'email@yahoo.com'
MAIL_PASSWORD = 'password'


# administrator list
ADMINS = ['email@yahoo.com']
下面是我的init脚本中处理邮件的部分:

app.config.from_object('config')
mail = Mail(app)
以下是我尝试发送电子邮件时的错误回溯:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/Users/user/microblog/flask/lib/python2.7/site-packages/flask_mail.py", line 491, in send
    with self.connect() as connection:
  File "/Users/user/microblog/flask/lib/python2.7/site-packages/flask_mail.py", line 144, in __enter__
    self.host = self.configure_host()
  File "/Users/user/microblog/flask/lib/python2.7/site-packages/flask_mail.py", line 156, in configure_host
    host = smtplib.SMTP_SSL(self.mail.server, self.mail.port)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 777, in __init__
    SMTP.__init__(self, host, port, local_hostname, timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 250, in __init__
    (code, msg) = self.connect(host, port)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 310, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 783, in _get_socket
    new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 387, in wrap_socket
    ciphers=ciphers)    
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 143, in __init__
    self.do_handshake()    
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 305, in do_handshake
    self._sslobj.do_handshake()   
ssl.SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
文件“/Users/user/microblog/flask/lib/python2.7/site packages/flask_mail.py”,第491行,发送
使用self.connect()作为连接:
文件“/Users/user/microblog/flask/lib/python2.7/site packages/flask\u mail.py”,第144行,输入__
self.host=self.configure_host()
文件“/Users/user/microblog/flask/lib/python2.7/site packages/flask\u mail.py”,第156行,在configure\u host中
host=smtplib.SMTP\u SSL(self.mail.server,self.mail.port)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py”,第777行,在__
SMTP.\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuu(自身、主机、端口、本地主机名、超时)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py”,第250行,在__
(代码,消息)=自连接(主机,端口)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py”,第310行,在connect中
self.sock=self.\u获取\u套接字(主机、端口、self.timeout)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py”,第783行,在
new_socket=ssl.wrap_socket(new_socket、self.keyfile、self.certfile)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py”,第387行,在wrap_套接字中
密码=密码)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py”,第143行,在__
self.do_握手
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py”,第305行,在do_握手中
赛尔夫:握手
ssl.SSLError:[Errno 1]\u ssl.c:504:错误:140770FC:ssl例程:SSL23\u GET\u SERVER\u HELLO:未知协议
谢谢

MAIL_PORT = 587
MAIL_USE_TLS = False
MAIL_USE_SSL = True
端口587用于显式TLS(STARTTLS命令),因此您可能必须使用MAIL\u use\u TLS而不是MAIL\u use\u SSL。MAIL_USE_SSL用于隐式TLS,您可以在端口465上直接与TLS连接


端口587用于显式TLS(STARTTLS命令),因此您可能必须使用MAIL\u use\u TLS而不是MAIL\u use\u SSL。MAIL\u USE\u SSL用于隐式TLS,您可以在端口465上直接与TLS连接。

总之:使用MAIL\u port=465,设置MAIL\u USE\u SSL=True并运行$unset MAIL\u USE\u TLS。这将删除环境。变量将其设置为False对我来说并没有效果。因此,总结一下:使用MAIL\u PORT=465,设置MAIL\u Use\u SSL=True,并运行$unset MAIL\u Use\u TLS。这将删除环境。变量把它设为False对我来说没用。