Python发送邮件遇535认证失败:freemail.hu SMTP配置求助
排查思路与替代方案
针对freemail.hu SMTP认证失败的排查步骤
- 检查双因素认证(2FA)状态:若账户开启了2FA,普通登录密码无法用于SMTP,需登录网页端生成专用应用密码,替换代码中的密码。
- 补充EHLO握手:部分SMTP服务器要求先发送EHLO指令再启动TLS,修改代码如下:
import smtplib import ssl try: server = smtplib.SMTP('smtp.freemail.hu', 587) server.ehlo() # 初始握手 server.starttls(context=ssl.create_default_context()) server.ehlo() # TLS启动后再次握手 server.login('[myuser]@freemail.hu', '[mypassword]') server.sendmail('[myuser]@freemail.hu', ['[myprivatemail]@gmail.com'], 'Test mail.') except Exception as e: print(e) finally: server.quit() - 处理密码特殊字符:若密码包含
@、\等特殊字符,使用原始字符串(前缀r)包裹密码,或通过环境变量读取密码,避免转义错误:import os password = os.getenv('FREEMAIL_PASSWORD') - 排查IP限制:频繁失败可能导致IP被临时封禁,切换网络环境(如手机热点)重试,或登录网页端查看账户安全页是否有异常登录限制。
- 指定认证机制:强制使用
PLAIN或LOGIN认证,替换login方法为:server.auth('[myuser]@freemail.hu', '[mypassword]', mechanism='PLAIN')
替代邮件服务商推荐
- Outlook/Hotmail:SMTP服务器
smtp.office365.com,端口587,需STARTTLS;开启2FA后需生成应用密码。 - Yahoo Mail:SMTP服务器
smtp.mail.yahoo.com,端口587,需STARTTLS;开启2FA后使用应用密码登录。 - ProtonMail:需搭配Proton Bridge工具实现SMTP功能,隐私性强。
- 第三方邮件服务(SendGrid/Mailgun):提供免费额度,支持SMTP/API发送,无普通邮箱的登录限制,适合个人或小批量发送场景。
内容的提问来源于stack exchange,提问作者Csaba Faragó
相关产品推荐
相关产品推荐

