import serial
import imaplib
from time import sleep
IMAP_SERVER='imap.gmail.com'
IMAP_PORT=993
ser= serial.Serial ('/dev/ttyACM0',9600)
M = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
rc, resp = M.login('user@gmail.com', 'password')
print rc, resp
while True:
M.select()
for msg_num in M.search("INBOX", "UNDELETED")[1][0].split():
msg = M.fetch('1', '(BODY.PEEK[TEXT])')
String = msg[1][0][1][139:161]
print String
if String == "This is just a test...":
ser.write('0')
sleep(1)
Я новичок в программировании на Python, и приведенный выше код на Python используется для программы, которую я хочу сделать.Когда я запускаю это в терминале, я получаю ответ, что я аутентифицировал свою учетную запись, и затем он отображает сообщение между символами 139 и 161, которое является следующим в примере электронной почты:
Это всего лишь тест...
Распечатывается в терминале.Если я удаляю сообщение в своем почтовом ящике, это выходит:
String = msg[1][0][1][139:161]
TypeError: 'NoneType' object is unsubscriptable
Я считаю, что это связано с тем, что у меня нет никаких сообщений в почтовом ящике.Теперь я хочу, чтобы, если нет сообщений, которые можно было бы запускать снова и снова, пока сообщение не появилось в моей папке входящих сообщений, и выполните соответствующее действие, ожидающее сообщения