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

    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行
  在服务器中= smtplib.SMTP(“ smtp.gmail.com”,587)文件
  初始化文件中的“ C:\ Python32 \ lib \ smtplib.py”行259
  连接中的“ C:\ Python32 \ lib \ smtplib.py”,第319行
      self.sock = self._get_socket(主机,端口,self.timeout)文件“ C:\ Python32 \ lib \ smtplib.py”,第294行,在_get_socket中
      返回socket.create_connection((host,port),timeout)文件“ C:\ Python32 \ lib \ socket.py”,行386,在create_connection中
      对于getaddrinfo(主机,端口,0,SOCK_STREAM)中的res:socket.gaierror:[Errno 11004] getaddrinfo在
  绕过它的最佳方法

最佳答案

getaddrinfo函数具有以下目的:


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


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

getaddrinfo返回的错误号“ 11004”与此错误相关:


  有效名称,没有所请求类型的数据记录。要求的名称是
  有效并且在数据库中找到,但是没有正确的
  相关数据正在解决。通常的例子是
  主机名到地址的转换尝试(使用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

关于python - 发送邮件错误python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12494977/

10-13 00:06