summaryrefslogtreecommitdiffstats
path: root/invoice/mailhelper.py
diff options
context:
space:
mode:
Diffstat (limited to 'invoice/mailhelper.py')
-rw-r--r--invoice/mailhelper.py89
1 files changed, 0 insertions, 89 deletions
diff --git a/invoice/mailhelper.py b/invoice/mailhelper.py
deleted file mode 100644
index ae9d3ac..0000000
--- a/invoice/mailhelper.py
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/env python3
-#-*- coding: utf-8 -*-
-from email.mime.multipart import MIMEMultipart
-from email.mime.application import MIMEApplication
-from email.mime.text import MIMEText
-from email.header import Header
-
-import time, email.utils, smtplib
-
-import sys
-
-class MAIL(object):
- def __init__(self, server, port, username, password):
- self.__server = server
- self.__port = port
- self.__username = username
- self.__password = password
- pass
-
- def __format_addresses(self, addresses, header_name=None, charset=None):
- header=email.header.Header(charset=charset, header_name=header_name)
- for i, (name, addr) in enumerate(addresses):
- if i!=0:
- # add separator between addresses
- header.append(',', charset='us-ascii')
- # check if address name is a unicode or byte string in "pure" us-ascii
- try:
- # check id byte string contains only us-ascii chars
- name.encode('us-ascii')
- except UnicodeError:
- # Header will use "RFC2047" to encode the address name
- # if name is byte string, charset will be used to decode it first
- header.append(name, charset='utf-8')
- # here us-ascii must be used and not default 'charset'
- header.append('<%s>' % (addr,), charset='us-ascii')
- else:
- # name is a us-ascii byte string, i can use formataddr
- formated_addr=email.utils.formataddr((name, addr))
- # us-ascii must be used and not default 'charset'
- header.append(formated_addr, charset='us-ascii')
- return header
-
- def generate_mail(self, receiver, subject, message, attachments = None, timestamp=time.time(), cc = None):
- msg = MIMEMultipart()
- msg["From"] = "KtT-Shopsystem <shop@kreativitaet-trifft-technik.de>"
- msg["Date"] = email.utils.formatdate(timestamp, True)
-
- try:
- if receiver[0].encode("ascii"):
- msg["To"] = receiver[0] + " <" + receiver[1] + ">"
- except UnicodeError:
- msg["To"] = self.__format_addresses([receiver])
-
- 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)
- if name.endswith("db"):
- file = MIMEApplication(data)
- file.add_header('Content-Disposition', 'attachment', filename = name)
- msg.attach(file)
- 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()