Skip to content

Instantly share code, notes, and snippets.

@LinuxDragon57
Forked from carc1n0gen/mail.py
Last active April 12, 2021 10:21
Show Gist options
  • Save LinuxDragon57/445bd0e190d3fee53bf25de582f3ae0d to your computer and use it in GitHub Desktop.
Save LinuxDragon57/445bd0e190d3fee53bf25de582f3ae0d to your computer and use it in GitHub Desktop.
Custom Mailer
import smtplib
from email.message import EmailMessage
from flask import g, current_app
class Mailer(object):
def __init__(self, smtp_host=None, smtp_port=None, username=None,
password=None):
self._smtp_host = smtp_host
self._smtp_port = smtp_port
self._username = username
self._password = password
def send(self, subject, to, sender, msg_plain, msg_html=None, headers=None):
if headers is None:
headers = {}
msg = EmailMessage()
msg.set_content(msg_plain)
msg['Subject'] = subject
msg['From'] = sender
msg['To'] = to
for k, v in headers.items():
msg.add_header(k, v)
server = smtplib.SMTP_SSL(self._smtp_host, self._smtp_port)
server.ehlo()
server.login(self._username, self._password)
server.send_message(msg)
server.close()
def get_mailer():
if 'mailer' not in g:
mailer = Mailer(
smtp_host=current_app.config.get('MAIL_SMTP_HOST'),
smtp_port=current_app.config.get('MAIL_SMTP_PORT'),
username=current_app.config.get('MAIL_USERNAME'),
password=current_app.config.get('MAIL_PASSWORD')
)
g.mailer = maile
return g.mailer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment