2016-09-15 4 views
3

Я пытаюсь использовать Beaglebone Black (BBB) ​​для отправки уведомлений по электронной почте, но я получаю эту ошибку getaddrinfo, которая читается как следующим образом;Получение getaddrinfo [Errno -2] при попытке использования Beaglebone Black для отправки по электронной почте

socket.gaierror: [Errno -2] Name or service not known

Я работаю над этим некоторое время и не могу найти, почему это не работает.

Файл нано я "м пытается запустить:

import smtplib 
#import time 
smtpObj = smtplib.SMTP('smtp.gmail.com', 587) 
#time.sleep(1000) 
print("SMTP object created...") 
smtpObj.ehlo() 
#time.sleep(1000) 
print("EHLO...") 
smtpObj.starttls() 
#time.sleep(1000) 
print("Starting TLS...") 
smtpObj.login('[email protected]', 'EXAMPLEPASSWORD') 
#time.sleep(1000) 
print("Logged into [email protected]") 
smtpObj.sendmail('[email protected]', 'EXAMPLERECIPIENT', '''Subject:test subject \ntest body 
Auto Alert System.''') 
{} 
#time.sleep(1000) 
print("Sending email...") 
smtpObj.quit() 
#time.sleep(1000) 
print("Destorying object.") 

Выход вызова функции test_email2.py выглядит следующим образом:

[email protected]:~/Desktop/email_project# python test_email2.py 
Traceback (most recent call last): 
File "test_email2.py", line 4, in <module> 
smtpObj = smtplib.SMTP('smtp.gmail.com', 587) 
File "/usr/lib/python2.7/smtplib.py", line 249, in __init__ 
(code, msg) = self.connect(host, port) 
File "/usr/lib/python2.7/smtplib.py", line 309, in connect 
self.sock = self._get_socket(host, port, self.timeout) 
File "/usr/lib/python2.7/smtplib.py", line 284, in _get_socket 
return socket.create_connection((port, host), timeout) 
File "/usr/lib/python2.7/socket.py", line 553, in create_connection 
for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno -2] Name or service not known 

Формат Я следующий основан по которому предоставлено https://automatetheboringstuff.com/chapter16/

ответ

1

socket.gaierror означает, что (в базе данных libc) getaddrinfo не удалось получить IP-адреса для доменных имен предоставлена. Он объясняет, почему это не удалось: [Errno -2] Name or service not known, поэтому он не знает о домене с таким именем, smtp.gmail.com. Это доменное имя, очевидно, существует, поэтому вам нужно заглянуть в настройки системы DNS в вашей системе BBB (и это на самом деле больше вопрос сообщества SuperUser).

Какие DNS-серверы используются в конфигурации? Если вы используете локальный кеширующий DNS-сервер в loopback, он работает и работает? Правильно ли он настроен для разрешения рекурсивных запросов? Эта конкретная проблема, скорее всего, не имеет ничего общего с Python или вашим кодом; ваша система BBB не может разрешить хотя бы некоторые, если не все, имена доменов.

+0

Спасибо за первый абзац, что на самом деле помогает мне понять, что происходит. Что касается второго абзаца, я бы хотел сообщить эту информацию, но я честно не знаю статуса какого-либо из этих предметов, и я не знаю, как их проверить. Мне может потребоваться некоторое время, чтобы понять все это. –

+0

@EdSawden, пожалуйста, присоединяйтесь: http://chat.stackoverflow.com/rooms/123476/receiving-getaddrinfo-errno-2-when-trying-to-use-beaglebone-black-to-send-emai Я буду попытайтесь помочь вам. –

+0

Мне очень жаль, что я не могу поболтать, но мне нужно еще 14 репутации, чтобы иметь возможность использовать чат (минимум 20 репутации, я в 6). –