commit:     8fea35a1e65ebab3e11245d88c58e08cb84c57a2
Author:     aeroniero33 <justthisthing <AT> gmail <DOT> com>
AuthorDate: Sat Aug 27 14:07:07 2016 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sat Aug 27 19:42:50 2016 +0000
URL:        https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=8fea35a1

Added a mail script that handles the emailing proccess

I created a new file called `mail.py` that handles the email login and the 
email sending.

 gkeys/gkeys/mail.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gkeys/gkeys/mail.py b/gkeys/gkeys/mail.py
new file mode 100644
index 0000000..df86d11
--- /dev/null
+++ b/gkeys/gkeys/mail.py
@@ -0,0 +1,51 @@
+from __future__ import print_function
+
+import os
+import smtplib
+import sys
+import email.utils
+
+from email.mime.text import MIMEText
+from snakeoil.demandload import demandload
+
+if sys.version_info[0] >= 3:
+    py_input = input
+    _unicode = str
+else:
+    py_input = raw_input
+    _unicode = unicode
+
+demandload(
+    "gkeys.base:Args",
+    "json:load",
+)
+
+class Emailer(object):
+    '''Send an email reminder about the status of the user's GPG key'''
+
+    def __init__(self, login, logger):
+        self.logger = logger
+        self.email_from = _unicode(login['login_email'])
+        self.sender_full_name = _unicode(login['full_name'])
+        login_passwd = login['passwd']
+        server = login['server']
+        self.mail = smtplib.SMTP(server, 587)
+        self.mail.ehlo()
+        self.mail.starttls()
+        self.mail.login(self.email_from, login_passwd)
+        self.logger.debug(_unicode("Login successfull"))
+
+    def send_email(self, uid, message):
+        self.logger.debug(_unicode('Sending email with message %s') % 
_unicode(message))
+        subject = "Expiring Key"
+        email_to = uid
+        msg = MIMEText(message, 'plain')
+        msg['Subject'] = subject
+        msg['From'] = email.utils.formataddr((self.sender_full_name, 
self.email_from))
+        msg['To'] = email_to
+        self.logger.info(_unicode('Sending the email reminder from %s to %s') \
+            % (self.email_from, email_to))
+        self.mail.sendmail(self.email_from, email_to, msg.as_string())
+
+    def email_quit(self):
+        self.mail.quit()

Reply via email to