发送邮件错误python

时间:2012-09-19 12:44:44

标签: python

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

    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行,在 init 文件中   连接中的“C:\ Python32 \ lib \ smtplib.py”,第319行       self.sock = self._get_socket(host,port,self.timeout)文件“C:\ Python32 \ lib \ smtplib.py”,第294行,在_get_socket中       return socket.create_connection((host,port),timeout)create_connection中的文件“C:\ Python32 \ lib \ socket.py”,第386行       对于getaddrinfo中的res(主机,端口,0,SOCK_STREAM):socket.gaierror:[Errno 11004] getaddrinfo失败的plse建议   绕过它的最佳方式

1 个答案:

答案 0 :(得分:4)

getaddrinfo函数具有此目的:

  

getaddrinfo函数提供从ANSI主机名到地址的协议无关转换。

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

getaddrinfo返回的错误号码“11004”已将此消息与之关联:

  

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

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

您确定您的网址是否正确?

链接:

getaddrinfohttp://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