From 45434a0b803cfeea7ede376a7121864bf0cf07bb Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Sat, 23 Feb 2013 20:10:55 +0100 Subject: refactor some code --- invoice/mailhelper.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 invoice/mailhelper.py (limited to 'invoice/mailhelper.py') diff --git a/invoice/mailhelper.py b/invoice/mailhelper.py new file mode 100644 index 0000000..49721cc --- /dev/null +++ b/invoice/mailhelper.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +#-*- coding: utf-8 -*- + +import time + +class MAIL(object): + def __init__(self, server, port, username, password): + self.__server = server + self.__port = port + self.__username = username + self.__password = password + pass + + def generate_mail(self, receiver, subject, message, attachments = None, timestamp=time.time(), cc = None): + msg = MIMEMultipart() + msg["From"] = "KtT-Shopsystem " + msg["Date"] = email.utils.formatdate(timestamp, True) + + try: + if receiver.encode("ascii"): + msg["To"] = receiver + except UnicodeError: + msg["To"] = Header(receiver, 'utf-8') + + if cc != None: + msg["Cc"] = cc + msg["Subject"] = Header(subject, 'utf-8') + msg.preamble = "Please use a MIME aware email client!" + + msg.attach(MIMEText(message, 'plain', 'utf-8')) + + if isinstance(attachments, dict): + for name, data in attachments.items(): + if name.endswith("pdf"): + pdf = MIMEApplication(data, 'pdf') + pdf.add_header('Content-Disposition', 'attachment', filename = name) + msg.attach(pdf) + else: + txt = MIMEText(data, 'plain', 'utf-8') + txt.add_header('Content-Disposition', 'attachment', filename = name) + msg.attach(txt) + elif attachments is not None: + pdf = MIMEApplication(attachments, 'pdf') + pdf.add_header('Content-Disposition', 'attachment', filename = 'rechnung.pdf') + msg.attach(pdf) + + return msg + + def send_mail(self, mail, receiver): + server = smtplib.SMTP(self.__server, self.__port) + server.starttls() + if self.__username != "": + server.login(self.__username, self.__password) + maildata = mail.as_string() + server.sendmail(mail["From"], receiver, maildata) + server.quit() -- cgit v1.2.3