1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-09 22:38:19 +02:00
django-mailbox/django_mailbox/transports/smtp.py

52 lines
1.4 KiB
Python
Raw Normal View History

2018-05-23 16:49:26 +03:00
from smtplib import SMTP, SMTP_SSL
2018-05-23 11:53:49 +03:00
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
2018-05-23 16:49:26 +03:00
from email.mime.image import MIMEImage
2018-05-23 11:53:49 +03:00
from django_mailbox.transports.base import EmailTransport
2018-05-23 11:53:49 +03:00
class SMTPTransport(EmailTransport):
def __init__(self, hostname, port=None,
ssl=False, tls=False):
2018-05-23 11:53:49 +03:00
self.hostname = hostname
self.port = port
self.tls = tls
self.server = None
2018-05-23 11:53:49 +03:00
if ssl:
2018-05-23 16:49:26 +03:00
self.transport = SMTP_SSL
2018-05-23 11:53:49 +03:00
if not self.port:
self.port = 465
else:
2018-05-23 16:49:26 +03:00
self.transport = SMTP
2018-05-23 11:53:49 +03:00
if not self.port:
self.port = 25
def connect(self, username, password):
self.server = self.transport(self.hostname, self.port)
if self.tls:
self.server.starttls()
_ = self.server.login(user=username, password=password)
2018-05-23 11:53:49 +03:00
2018-05-23 16:49:26 +03:00
def send_message(self, subject, message, from_email, recipient_list, img=None, html=False):
msg = MIMEMultipart()
msg_text = MIMEText(message, 'plain' if not html else 'html')
2018-05-23 11:53:49 +03:00
2018-05-23 16:49:26 +03:00
if img:
with open(img, 'rb') as fp:
msg_img = MIMEImage(fp.read())
msg.attach(msg_img)
2018-05-23 11:53:49 +03:00
msg.attach(msg_text)
msg['From'] = from_email
msg['To'] = recipient_list
msg['Subject'] = subject
self.server.sendmail(msg['From'], msg['To'], msg.as_string())
self.server.quit()