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

在Ubuntu远程机器上用Yagmail和Keyring注册邮箱凭据报错

问题原因

在Ubuntu 20.10远程机器通过SSH运行代码时,keyring默认使用的SecretService后端需要图形界面弹出授权对话框来创建密码集合,但远程终端无图形会话,系统判定弹窗被用户取消,因此抛出Prompt dismissed错误。直接写入应用专用密码能正常发件,说明邮箱配置本身无问题,故障仅出在keyring的存储交互环节。

解决方案

方法1:改用无图形依赖的file后端(推荐远程环境使用)

  • 安装keyring的file后端扩展:
    pip install keyrings.alt
    
  • 临时指定keyring使用明文文件后端(若需永久生效,可将该命令写入~/.bashrc):
    export PYTHON_KEYRING_BACKEND=keyrings.alt.file.PlaintextKeyring
    
  • 执行注册代码:
    import yagmail
    yagmail.register('MY_EMAIL', 'MY_PASSWORD')
    
  • 修改密码文件权限,确保仅自己可读:
    chmod 600 ~/.python_keyring
    

方法2:通过SSH X转发启用图形授权(本地有图形界面时可用)

  • 带X转发参数连接远程机器:
    ssh -X your_username@remote_host_ip
    
  • 确保远程机器安装了gnome-keyring:
    sudo apt install gnome-keyring
    
  • 再次运行注册代码,授权弹窗会显示在本地图形界面,完成授权即可。

方法3:手动创建keyring集合

  • 通过X转发打开图形化密钥管理工具seahorse:
    ssh -X your_username@remote_host_ip
    sudo apt install seahorse
    seahorse
    
  • 在seahorse中创建名为yagmail的密码集合,之后再运行注册代码就不会触发创建集合的弹窗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:51:56