You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Flask通过Yandex发送邮件时遇认证权限错误求助

解决Flask使用Yandex邮箱发送邮件的认证失败问题

出现"authentication failed: This user does not have access rights to this service"错误,核心原因是Yandex邮箱目前禁止使用账号登录密码进行SMTP第三方认证,必须使用应用专用密码,以下是具体解决步骤:

1. 生成Yandex应用专用密码

  • 登录你的Yandex邮箱账号,进入账号安全设置界面
  • 找到「应用密码」选项(需先开启账号的双重验证才能生成)
  • 为你的Flask应用创建新的应用密码,复制生成的字符串

2. 修正代码

移除重复的mail = Mail(app)初始化(第一行的初始化无意义,应在配置完成后再初始化),然后将MAIL_PASSWORD替换为刚生成的应用专用密码,修正后的代码如下:

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)

# 邮件配置
app.config['MAIL_SERVER'] = 'smtp.yandex.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = 'my-username@yandex.com'
app.config['MAIL_PASSWORD'] = '你的应用专用密码'  # 替换为生成的密码

mail = Mail(app)


@app.route('/send-email')
def send_mail():
    msg = Message(
        'This email was sent by me from Flask',
        sender='my-username@yandex.com',
        recipients=['rec@gmail.com']
    )
    msg.body = "This is the email body, I just wanted to test the flask email option, and see how does it work."
    mail.send(msg)
    return 'Email sent!'

额外检查点

  • 确认Yandex邮箱的SMTP服务处于开启状态(默认开启,可在邮箱设置中验证)
  • 确保邮箱地址完全正确,包括后缀(如@yandex.com、@yandex.ru等)

内容的提问来源于stack exchange,提问作者Rachid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:45:34