使用Python smtplib连接Gmail/ProtonMail服务器时遇错误求解决
解决Gmail SMTP连接超时问题
- 端口与协议不匹配:465是SMTP over SSL的专用端口,需使用
smtplib.SMTP_SSL而非普通smtplib.SMTP;若坚持用smtplib.SMTP,请改用587端口并启用STARTTLS加密。正确代码示例:import smtplib # 方式1:直接通过SSL连接465端口 server = smtplib.SMTP_SSL('smtp.gmail.com', 465) # 方式2:连接587端口后启用TLS加密 server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() - 身份验证方式更新:Gmail已停止支持普通密码登录SMTP,需先开启账号的两步验证,再创建应用专用密码,用该专用密码替代原密码完成登录。
- 排查网络限制:检查本地防火墙、杀毒软件是否拦截了SMTP连接;若在公司/校园网络环境,需联系管理员确认端口是否被限制;可切换至手机热点等其他网络,排除运营商层面的限制。
解决ProtonMail连接被拒绝问题
- 服务器地址错误:你连接的
127.0.0.1:1025是本地测试邮件服务器(如MailHog)的地址,并非ProtonMail官方SMTP服务器。ProtonMail的官方SMTP地址为smtp.protonmail.ch,支持587(STARTTLS)和465(SSL)两个端口。正确代码示例:import smtplib # 方式1:通过SSL连接465端口 server = smtplib.SMTP_SSL('smtp.protonmail.ch', 465) # 方式2:连接587端口后启用TLS加密 server = smtplib.SMTP('smtp.protonmail.ch', 587) server.starttls() - 开启SMTP服务权限:登录ProtonMail网页端,进入「设置」→「邮件」→「转发/IMAP/SMTP」,确保SMTP服务已启用。
- 身份验证配置:使用完整的ProtonMail邮箱地址和密码登录;若开启了两步验证,需创建应用专用密码用于SMTP验证。
- 排查网络限制:同Gmail问题排查逻辑,检查本地安全软件是否拦截连接,或切换网络测试是否存在运营商限制。
内容的提问来源于stack exchange,提问作者dgvain
相关产品推荐
相关产品推荐

