2013-08-23 2 views
3

나는 파이썬을 사용하여 메일에 파일을 첨부하려고 시도했다. 코드 :socket.gaierror : [Errno 11001] getaddrinfo failed

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" 

비티 나는 오류가 있습니다 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 
+0

소켓 lib가 SMTP 서버 이름을 해석 할 수없는 것처럼 보입니다. – Denis

+0

이 SMTP 서버에도 A 레코드가 있습니까? –

답변

3

문제는 그 DNS 조회를위한 'smtp server name'이 (가) 실패했습니다. 이것이 정확한 코드라면 그 이유를 알 수 있습니다. 그렇지 않은 경우 SMTP 서버에 유효한 정규화 된 이름이 있으면 방화벽/인터넷 연결 등에 문제가있을 수 있습니다. 또한 포트 귀하의 serv와 일치하는 유효한 값으로 설정되어야합니다. ers SMTP 구성 (일반적으로 포트 25 이지만 반드시이 절대적으로 아닙니다).

2

나는 프록시 뒤에서 일할 때 반드시 gaierror가 표시된다는 것을 알고 있습니다.

관련 문제