注册
登录
查看:414 | 回复:8
排个序
flask-mail发邮件失败,求大神解救一下啊
发表于 2023/8/17 14:07:34
楼主

在看flask这本书,在flask-mail发邮件这卡住了,不知怎么解决,求帮忙。

用得是163的邮箱,开了SMTP,也弄了授权密码

配置如下:


flask-mail发邮件失败,求大神解救一下啊


然后在 python shell测试,


flask-mail发邮件失败,求大神解救一下啊

排个序
发表于 2023/8/17 14:09:40
沙发

照着书上来,不成功啊。。。

Traceback (most recent call last):
  File   console  , line 2, in  module 
  File  C:\Python3\lib\site-packages\flask_mail.py , line 491, in send
    with self.connect() as connection:
  File  C:\Python3\lib\site-packages\flask_mail.py , line 144, in __enter__
    self.host = self.configure_host()
  File  C:\Python3\lib\site-packages\flask_mail.py , line 163, in configure_host
    host.starttls()
  File  C:\Python3\lib\smtplib.py , line 748, in starttls
    self.ehlo_or_helo_if_needed()
  File  C:\Python3\lib\smtplib.py , line 602, in ehlo_or_helo_if_needed
    raise SMTPHeloError(code, resp)
smtplib.SMTPHeloError: (500, b Error: bad syntax )


南极
发表于 2023/8/17 14:14:35
板凳

flask-mail发邮件失败,求大神解救一下啊


你的端口选择的是25,那么表示使用的是非ssl协议。

即:MAIL_PORT = 25 MAIL_USE_TLS = False MAIL_USE_SSL = False

南极
发表于 2023/8/17 14:19:30
4楼

另外补充一下目前使用smtp发邮件的思路:

1.首先在163/QQ等网页里开通smtp功能,不开通是一定不能发的;

2.设置客户端授权密码,使用客户端授权密码代替密码发送;

3.如果使用非ssl协议,那么smtp端口号是25,MAIL_PORT = 25, MAIL_USE_TLS = False, MAIL_USE_SSL = False ;

4. 如果使用SSL协议,那么端口号是 465 或者 994, MAIL_PORT = 465, MAIL_USE_TLS = False, MAIL_USE_SSL = True。


why
发表于 2023/8/17 14:20:14
5楼

一般都能从错误提示信息找到答案, 你把错误提示信息完整的发上来看看


排个序
发表于 2023/8/17 14:22:24
6楼

下面是图。我不太懂这儿ehlo_or_helo_if_needed.


flask-mail发邮件失败,求大神解救一下啊

排个序
发表于 2023/8/17 14:23:46
7楼

TLS怎么都是False呢,我看教程和别人的,

他们都是MAIL_TLS=True,


排个序
发表于 2023/8/17 14:25:39
8楼

还是不行啊。我看了下SMTP库的代码,抛出HELOerror是因为ehlo_or_helo_if_needed(),

说明服务器没有回应ehlo( The server didn t reply properly to the helo greeting),

即使再次通过Helo()去获取回应也没有成功


flask-mail发邮件失败,求大神解救一下啊


排个序
发表于 2023/8/17 14:27:07
9楼

谢谢各位,解决了,是163的问题,换sina一下子就成功了。


立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品