socket.gaierror:[Errno 11001] getaddrinfo失败

use*_*879 4 python

我尝试使用python将文件附加到邮件。码:

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from smtplib import SMTPException


def send_Email():
    file1="abc.txt"
    message = "Test mail"
    msg = MIMEMultipart()

    msg.attach(MIMEText(file(file1).read()))

    try:
        smtpObj = smtplib.SMTP('smtp server name',port)
        smtpObj.sendmail(sender, EmailId, message, msg.as_string() )
        print "Successfully sent email"
    except SMTPException:
        print "Error: unable to send email"
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:socket.gaierror:[Errno 11001] getaddrinfo失败

完整的错误消息:

 File "C:\Python27\lib\smtplib.py", line 249, in __init__
    (code, msg) = self.connect(host, port)
  File "C:\Python27\lib\smtplib.py", line 309, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Python27\lib\smtplib.py", line 284, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "C:\Python27\lib\socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno 11001] getaddrinfo failed
Run Code Online (Sandbox Code Playgroud)

Ste*_*nes 5

问题是“ smtp服务器名称”的DNS查找失败-如果这是您的确切代码,则可以看到原因-如果没有,并且您具有SMTP服务器的有效合格名称,则防火墙/ Internet连接等,端口也必须设置为有效值以匹配服务器的SMTP配置(通常为端口25,并非始终如此)。


Dee*_*ini 5

我肯定知道从后台代理工作时会出现gaierror。