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

Python脚本通过imaplib连接Gmail在服务器端无响应问题

问题分析与解决建议

问题描述

我编写了一个Python脚本,用于每日从指定Gmail邮箱下载附件,本地运行完全正常,但部署到服务器后出现异常。服务器上运行代码时,控制台仅输出Connect with IMAP后就无任何响应。

代码片段

import email
import os
import imaplib
import socket


def download_attachments():
    print('Connect with IMAP')
    imap_server = imaplib.IMAP4_SSL('imap.gmail.com')

    print('Login details')
    username = "email@gmail.com"
    password = "password"


    print('Login to mail')
    try:
        imap_server.login(username, password)
    except imaplib.IMAP4.error as error:
        return (f'Error while login: {error}')

服务器详情

生产环境Python脚本服务器。
更新时间: 2023年1月14日 周六 下午2:55:01 CET
主机名: xxxxxxx
IP地址: xxxxxxx
系统类型: Debian GNU/Linux 11 (bullseye)
负载: 0.02 0.06 0.07 1/114 59615
硬件资源: 2 CPU | 3931 MB RAM

debug2: client_check_window_change: changed debug2: channel 0: request window-change confirm 0 debug3: send packet: type 98
最后登录时间: 2023年1月14日 周六 14:19:25,来自xxxxxxx
本系统由Ansible管理,所有本地更改将会丢失。

生产环境Python脚本服务器。
更新时间: 2023年1月14日 周六 下午2:55:01 CET
主机名: xxxxxxx
IP地址: xxxxxxx
系统类型: Debian GNU/Linux 11 (bullseye)
负载: 0.02 0.06 0.07 1/114 59615
硬件资源: 2 CPU | 3931 MB RAM

排查方向与解决方法

  • 网络端口连通性:服务器可能被防火墙限制,无法访问Gmail的IMAP端口(993)。在服务器执行nc -zv imap.gmail.com 993测试连通性,若不通,联系运维开放出站993端口。
  • SSL证书验证失败:Debian 11的CA证书可能未更新,导致无法验证Gmail的SSL证书。执行apt update && apt install -y ca-certificates更新证书后重试。
  • 未设置连接超时:脚本未定义超时时间,服务器网络延迟时会无限挂起。修改IMAP连接代码,添加超时参数:
    imap_server = imaplib.IMAP4_SSL('imap.gmail.com', timeout=30)
    
  • Gmail安全策略拦截:若使用普通密码登录,Gmail可能阻止非信任环境的登录尝试。建议开启两步验证后使用应用专用密码,或临时允许“不太安全的应用”(不推荐长期使用)。
  • DNS解析异常:服务器无法解析imap.gmail.com域名。执行nslookup imap.gmail.com检查解析结果,若异常可更换DNS服务器(如8.8.8.8)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:10:51