Web2Py IOError: [Errno socket 错误] [Errno 11004] getaddrinfo 失败 发送邮件时错误
我遇到了一个错误:
警告: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()
来源: 链接