import logging import requests from personal_data import secrets logger = logging.getLogger(__name__) MAILGUN_API_ENDPOINT = 'https://api.mailgun.net/v3/{mailgun_domain}/messages' FROM_MAIL_NAME = 'Personal Scrapers' FROM_MAIL_USERNAME = 'scrapers' def send_email(session: requests.Session, subject: str, text: str): if subject == '': msg = 'Subject must not be empty' raise ValueError(msg) if text == '': msg = 'Text must not be empty' raise ValueError(msg) logger.info('Sending email using mailgun!') data = { 'from': f'{FROM_MAIL_NAME} <{FROM_MAIL_USERNAME}@{secrets.MAILGUN_DOMAIN}>', 'to': [secrets.MAILGUN_RECIPIENT], 'subject': subject, 'text': text, } url = MAILGUN_API_ENDPOINT.format(mailgun_domain=secrets.MAILGUN_DOMAIN) response = session.post( url, auth=('api', secrets.MAILGUN_API_KEY), data=data, ) response.raise_for_status() logger.info('Email sent!') return response