Петля получения почты Python - PullRequest
0 голосов
/ 19 января 2019

Я создаю программу, которая проверяет электронную почту с заголовком «sup1».При получении он удаляет электронное письмо и отправляет случайное число исходному отправителю.Прямо сейчас это только иногда получает ответ.Кстати, это тестирование для другого проекта, поэтому это странно звучащая программа.

#Get Email#
import easyimap
import imaplib
import smtplib
import ssl
import random

#Get Variables
login = "****"
password = "****"

imapserver = "imap.gmail.com"

#Send Variables
port = 465
smtp_server = "smtp.gmail.com"

#Booting Up
print("Booted up!")

#Functions
#Delete Emails
def deleteEmails(user,password,IMAP):
    mail = imaplib.IMAP4_SSL(IMAP)

    mail.login(user,password)
    mail.select("inbox")

    typ,data = mail.search(None,"ALL")

    for num in data[0].split():
        mail.store(num,"+FLAGS",r"(\Deleted)")

    mail.expunge()
    mail.close()
    mail.logout()

#Send
def sendEmail(message):
    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_server,port,context=context) as server:
        server.login(login,password)
        server.sendmail(login,receiver_email,message)

#While Loop
while True:
    #Read All Emails
    imapper = easyimap.connect("imap.gmail.com",login,password)
    for mail_id in imapper.listids(limit = 100):
        mail = imapper.mail(mail_id)

        temp = list(mail.from_addr)
        sender = ""
        temp2 = False
        for i in range(len(temp)):
            if temp[i] == "<":
                temp2 = True
            elif temp2 and temp[i] != ">":
                sender += temp[i]

        receiver_email = sender

        #Test For Kinds Of Emails
        if mail.title == "sup1":
            sendEmail("Subject: "+str(random.randint(1,10)))
            deleteEmails(login,password,imapserver)

            print("Sent")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...