# HG changeset patch # User Matti Hamalainen # Date 1470131403 -10800 # Node ID b5cc76f18256768da8ca39b6891c29649abe2fee # Parent f6836a6043222ecbfc9958b18caef153de7d4628 Fix e-mail sending and implement basic TLS support for outgoing SMTP. diff -r f6836a604322 -r b5cc76f18256 multimerge.py --- a/multimerge.py Wed Jul 27 15:10:46 2016 +0300 +++ b/multimerge.py Tue Aug 02 12:50:03 2016 +0300 @@ -69,9 +69,16 @@ msg["From"] = cfg.email_sender msg["To"] = ",".join(cfg.email_to) try: - smtpH = smtplib.SMTP(cfg.email_server) - smtpH.sendmail(cfg.email_sender, cfg.email_to, msg.as_string()) - smtpH.quit() + server = smtplib.SMTP(cfg.email_server) + if gcm_check_debug(4): + server.set_debuglevel(10) + + if cfg.email_use_tls: + server.starttls() + + server.login(cfg.email_srv_user, cfg.email_srv_password) + server.sendmail(cfg.email_sender, cfg.email_to, msg.as_string()) + server.quit() except Exception as e: gcm_print(u"FATAL: Oh crap, e-mail sending failed: {0}".format(str(e))) sys.exit(1) @@ -353,7 +360,11 @@ cfg.mdef("email_to", True, cfg.is_email_list, cfg.trans_email_list, None) cfg.mdef("email_sender", True, cfg.is_email, None, None) cfg.mdef("email_subject", True, cfg.is_string, None, u"Google Calendar MultiMerge status") + +cfg.mdef("email_use_tls", True, cfg.is_bool, cfg.trans_bool, False) cfg.mdef("email_server", True, cfg.is_string, None, None) +cfg.mdef("email_srv_user", True, cfg.is_string, None, None) +cfg.mdef("email_srv_password", True, cfg.is_string, None, None) cfg.mdef("source_regex", True, cfg.is_string, None, u"^R:\s*(.*?)\s*\(\s*(.+?)\s*\)\s*$") cfg.mdef("source_regmap", False, cfg.is_list, cfg.trans_list, [1, 2]) @@ -429,7 +440,6 @@ gcm_fatal(u"Target calendar ID or name required, but not set.") - ## Initialize and authorize API connection credentials = gcm_get_credentials(cfg) http = credentials.authorize(httplib2.Http())