Web2Py IOError: [Errno socket 错误] [Errno 11004] getaddrinfo 失败 发送邮件时错误

2 投票
2 回答
1436 浏览
提问于 2025-04-18 06:39

我遇到了一个错误:

警告:web2py:发送邮件失败:[错误号 11004] 获取地址信息失败

这个错误出现在以下代码中:

mail = Mail()
mail.settings.server = 'smtp.gmail.com:587'
mail.settings.sender = 'email@gmail.com'
mail.settings.login = 'email@gmail.com:password'

mail.send(to=[email],subject= 'TEST',message='helloWorld')

有人能帮我吗?我找不到关于 getaddrinfo 的任何文档,也不知道错误发生在代码的哪个地方。

谢谢!

2 个回答

0

这是你电脑网络设置的问题。 这和你的代码没有关系。

关于 getaddrinfo 的信息可以在 这里 找到。

如果你使用的是Linux或类似Unix的系统,可以试试 nslookup smtp.gmail.com

0

我用smtplib来实现这个功能。

# here i check if i send succesfully.
server = smtplib.SMTP(HOST)
# server.login(username, password)  # optional
try:
    toaddr = TO
    cc = [CC]
    bcc = ['']
    toaddrs = [toaddr] + cc + bcc
    failed = server.sendmail(FROM, toaddrs, msg.as_string())
    server.close()
    statusemail= "Email enviado com sucesso para %s" % TO
    print statusemail
    return statusemail
except Exception, e:
    errorMsg = "Unable to send email. Error: %s" % str(e)
    return errorMsg
##############################################################
#example code to test smtplib
import smtplib
# Specifying the from and to addresses
fromaddr = 'fromuser@gmail.com'
toaddrs  = 'touser@gmail.com'
# Writing the message (this message will appear in the email)
msg = 'Enter you message here'
# Gmail Login
username = 'username'
password = 'password'
# Sending the mail  
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

在这里输入图片描述

来源: 链接

撰写回答