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

使用Python smtplib发送邮件遇socket.gaierror错误求助

问题解决:smtplib发送邮件时的socket.gaierror错误

错误原因分析

你遇到的socket.gaierror: [Errno -2] Name or service not known是域名解析失败,结合代码来看有两个核心问题:

  1. Titan Mail的SMTP服务器地址写错了,正确地址是smtp.titan.email,不是smtp.titan.mail
  2. 端口与连接方式不匹配:465是SSL加密端口,需用SMTP_SSL()连接;而starttls()是搭配587端口使用的

修正后的代码

方式1:使用465 SSL端口(推荐)

import smtplib

sender_email='你的邮箱地址'
password='你的邮箱密码(若开启两步验证需用应用专用密码)'
reciever_email='收件人邮箱地址'

# 用SMTP_SSL连接465端口
s = smtplib.SMTP_SSL('smtp.titan.email', 465)

s.login(sender_email, password)

# 注意邮件格式:subject和正文之间要有空行
message = """\
Subject: Python Email

This message is sent from Python"""

s.sendmail(sender_email, reciever_email, message)
s.quit()

方式2:使用587 STARTTLS端口

import smtplib

sender_email='你的邮箱地址'
password='你的邮箱密码(若开启两步验证需用应用专用密码)'
reciever_email='收件人邮箱地址'

# 用SMTP连接587端口,再启动TLS加密
s = smtplib.SMTP('smtp.titan.email', 587)
s.starttls()

s.login(sender_email, password)

message = """\
Subject: Python Email

This message is sent from Python"""

s.sendmail(sender_email, reciever_email, message)
s.quit()

额外注意事项

  • 如果你的Titan邮箱开启了两步验证,登录密码不能用普通密码,需要在账号设置里生成应用专用密码
  • 邮件的Subject行和正文之间必须有一个空行,否则收件方可能无法正确识别邮件主题
  • 若要发送带附件、HTML格式的邮件,建议使用Python内置的email模块构建邮件内容,能更好处理复杂格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:15:39