import ssl from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib from tools.envConf import def_conf from django.conf import settings import imaplib import email from bs4 import BeautifulSoup def sendEmail(receiver_email=None, Subject=None, textType=None, contain=None): # https://realpython.com/python-send-email/ sender_email = settings.ENV_CONF[def_conf.EMAIL_HOST] password = settings.ENV_CONF[def_conf.EMAIL_PSSW] message = MIMEMultipart("alternative") message["Subject"] = Subject message["From"] = sender_email message["To"] = receiver_email if textType == 'plain-text': part = MIMEText(contain, "plain") elif textType == 'HTML-version': part = MIMEText(contain, "html") else: raise NameError('Tipo no soportado') # The email client will try to render the last part first message.attach(part) # Create secure connection with server and send email context = ssl.create_default_context() with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server: server.login(sender_email, password) server.sendmail( sender_email, receiver_email, message.as_string() ) return {'status':'ok'} def readEmail(): # https://codehandbook.org/how-to-read-email-from-gmail-using-python/ ORG_EMAIL = "@gmail.com" FROM_EMAIL = "srmconsulting2004" + ORG_EMAIL FROM_PWD = "SRM2004consulting" SMTP_SERVER = "imap.gmail.com" SMTP_PORT = 993 mail = imaplib.IMAP4_SSL(SMTP_SERVER) mail.login(FROM_EMAIL, FROM_PWD) mail.select('inbox') type, data = mail.search(None, 'ALL') mail_ids = data[0] id_list = mail_ids.split() first_email_id = int(id_list[0]) latest_email_id = int(id_list[-1]) for i in range(latest_email_id, first_email_id, -1): # for i in range(first_email_id,latest_email_id, 1): typ, data = mail.fetch(str(i), '(RFC822)') for response_part in data: if isinstance(response_part, tuple): msg = email.message_from_string(response_part[1].decode()) # print(msg.get_payload()[1].get_payload()) soup = BeautifulSoup(msg.get_payload()[1].get_payload(), 'html.parser') soup = soup.findAll('div', dir="ltr")[0].text email_subject = msg['subject'] email_from = msg['from'] # print('From : ' + email_from + '\n') # print('Subject : ' + email_subject + '\n') # print('body : ' + msg['Content-Type'] + '\n') return msg #### Código original Aure def enviar_correo(): # https://realpython.com/python-send-email/ sender_email = "srmconsulting2004@gmail.com" receiver_email = "aaragon@srmconsulting.es" password = "SRM2004consulting" message = MIMEMultipart("alternative") message["Subject"] = "multipart test" message["From"] = sender_email message["To"] = receiver_email # Create the plain-text and HTML version of your message text = """\ Hi, How are you? Real Python has many great tutorials: www.realpython.com""" html = """\
Hi,
How are you?
Real Python
has many great tutorials.