diff --git a/.gitignore b/.gitignore index 804fef4..5180805 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ dummy_project/* .tox/ messages *.sqlite3 +venv/* +.idea/ diff --git a/django_mailbox/transports/smtp.py b/django_mailbox/transports/smtp.py new file mode 100644 index 0000000..c6ed772 --- /dev/null +++ b/django_mailbox/transports/smtp.py @@ -0,0 +1,49 @@ +import smtplib + +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText + +# from django.conf import settings +# from django.core.mail import EmailMessage + +from django_mailbox.transports.base import EmailTransport, MessageParseError + + +class SMTPTransport(EmailTransport): + def __init__(self, + hostname, port=None, ssl=False, tls=False): + self.hostname = hostname + self.port = port + self.tls = tls + + if ssl: + self.transport = smtplib.SMTP_SSL + if not self.port: + self.port = 465 + else: + self.transport = smtplib.SMTP + 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() + + typ, msg = self.server.login(user=username, password=password) + + # TODO Add abilities for html, image sending. + def send_message(self, subject, message, from_email, recipient_list): + msg = MIMEMultipart(message) + + msg_text = MIMEText(message, 'plain') + + 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() +