1

尝试发送邮件的脚本时出现以下错误

    import urllib.request
    import re
    import smtplib
    from email.mime.text import MIMEText
    from bs4 import BeautifulSoup
    page=urllib.request.urlopen("http://www.crummy.com/")
    soup=BeautifulSoup(page)
    v=soup.findAll('a',href=re.compile('http://www.crummy.com/2012/07/24/0'))
    for link in v:

      w=link.get('href')


    server = smtplib.SMTP( "smtp.gmail.com", 587 )
    server.starttls()
    server.login( 'xxxxxxxxxxx', 'xxxxxxx' )
    server.sendmail( 'xxxxxxxxx', 'xxxxxxxxx', "bonus question is up" )

回溯(最后一次调用):文件“C:\Python32\bonus”,第 14 行,
在 server = smtplib.SMTP("smtp.gmail.com", 587) 文件
“C:\Python32\lib\smtplib.py ”,第 259 行,在初始化 文件“C:\Python32\lib\smtplib.py”中,第 319 行,在连接 self.sock = self._get_socket(host, port, self.timeout) 文件中“C:\Python32\lib \smtplib.py”,第 294 行,在 _get_socket 返回 socket.create_connection((host, port), timeout) 文件“C:\Python32\lib\socket.py”,第 386 行,在 getaddrinfo(host,端口,0,SOCK_STREAM):socket.gaierror:[Errno 11004] getaddrinfo 失败请建议最好的解决方法

4

1 回答 1

4

getaddrinfo函数有这个目的:

getaddrinfo 函数提供从 ANSI 主机名到地址的独立于协议的转换。

如果失败,则意味着它无法将您给定的主机名转换为相应的地址。它本质上是在进行 DNS 查询。

您返回的错误号“11004”与getaddrinfo此消息相关联:

有效名称,没有请求类型的数据记录。请求的名称有效并且在数据库中找到,但它没有正确的关联数据正在解析。通常的示例是使用 DNS(域名服务器)的主机名到地址转换尝试(使用 gethostbyname 或 WSAAsyncGetHostByName)。返回一条 MX 记录,但没有 A 记录——表明主机本身存在,但不能直接访问。

您正在查找的名称似乎没有与之关联的正确数据。

你确定你的网址是正确的吗?

链接:

getaddrinfo: http: //msdn.microsoft.com/en-us/library/windows/desktop/ms738520 (v=vs.85).aspx

WinSock 错误代码: http: //msdn.microsoft.com/en-us/library/windows/desktop/ms740668 (v=vs.85).aspx

于 2012-09-19T12:55:27.493 回答