Итак, функция отправки сообщений с мыла была приведена в постах ниже, поэтому смысла ее выкладывать нет. Осталось написать функцию, которая будет читать письма, находить в них команды (под командами я понимаю любую строку, которая начинается с "/", под исполняемой командой - любую строку из перечисленных в первой части.) и отправлять все эти команды на исполнение. Также я вижу смысл прокомментить некоторые строки данной функции:
def returnCommand():
server = "pop.yandex.ru" #укажим сервер яндекса(там почта)
port = "110"
login = "___"
password = "____"
box = poplib.POP3(server, port)
box.user(login)
box.pass_(password)
response, lst, octets = box.list()
x=[] #темповый массив для команд и мусора
for msgnum, msgsize in [i.split() for i in lst]:
(resp, lines, octets) = box.retr(msgnum) #получаем письмо с темой, отправителем, текстом письма
msgtext = "\n".join(lines) + "\n\n"
message = email.message_from_string(msgtext)#получим только тело(текст) письма
message_body = message.get_payload()
x.append(message_body)
box.dele(msgnum)#удалим все пришедшие сообщения, чтобы они нас не смущали потом
box.quit()
command=[]
for i in x:
g=i.split()
for j in g:
if '/' in j: command.append(j)#из темпового массива вытащим все команды
print "Commands:"
print command
return command #вернем list-список команд
Ну и собственно в головном модуле будем получать list из команд, смотреть, есть ли там исполняемые команды и выполнять их:
inputInformation=returnCommand()
outputString=''
for inputString in inputInformation:
kol=0
if '/film' in inputString: outputString+='|'+getFilms(); kol=1
if '/bash' in inputString: outputString+='|'+getRandomBashText(); kol=1
if '/news' in inputString: outputString+='|'+getRandomNewsText(); kol=1
if '/weather' in inputString: outputString+='|'+getRSSWeatherOne(); kol=1
if '/anekdot' in inputString: outputString+='|'+getRandomAnekdot(); kol=1
if kol==0: print 'Вы ошиблись с командой!'
sendMessage(outputString, fromaddr, toaddrs, username, passwordmail)
Всё. В скором времени(решил приурочить покупку симки к покупке нового телефона) протестирую, может быть залью что-то новое :) А потом отпишусь.
def returnCommand():
server = "pop.yandex.ru" #укажим сервер яндекса(там почта)
port = "110"
login = "___"
password = "____"
box = poplib.POP3(server, port)
box.user(login)
box.pass_(password)
response, lst, octets = box.list()
x=[] #темповый массив для команд и мусора
for msgnum, msgsize in [i.split() for i in lst]:
(resp, lines, octets) = box.retr(msgnum) #получаем письмо с темой, отправителем, текстом письма
msgtext = "\n".join(lines) + "\n\n"
message = email.message_from_string(msgtext)#получим только тело(текст) письма
message_body = message.get_payload()
x.append(message_body)
box.dele(msgnum)#удалим все пришедшие сообщения, чтобы они нас не смущали потом
box.quit()
command=[]
for i in x:
g=i.split()
for j in g:
if '/' in j: command.append(j)#из темпового массива вытащим все команды
print "Commands:"
print command
return command #вернем list-список команд
Ну и собственно в головном модуле будем получать list из команд, смотреть, есть ли там исполняемые команды и выполнять их:
inputInformation=returnCommand()
outputString=''
for inputString in inputInformation:
kol=0
if '/film' in inputString: outputString+='|'+getFilms(); kol=1
if '/bash' in inputString: outputString+='|'+getRandomBashText(); kol=1
if '/news' in inputString: outputString+='|'+getRandomNewsText(); kol=1
if '/weather' in inputString: outputString+='|'+getRSSWeatherOne(); kol=1
if '/anekdot' in inputString: outputString+='|'+getRandomAnekdot(); kol=1
if kol==0: print 'Вы ошиблись с командой!'
sendMessage(outputString, fromaddr, toaddrs, username, passwordmail)
Всё. В скором времени(решил приурочить покупку симки к покупке нового телефона) протестирую, может быть залью что-то новое :) А потом отпишусь.
Комментариев нет:
Отправить комментарий