Mercurial > hg > gcmultimerge
comparison multimerge.py @ 95:b5cc76f18256
Fix e-mail sending and implement basic TLS support for outgoing SMTP.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 02 Aug 2016 12:50:03 +0300 |
parents | 46c1a3b6135a |
children | 524915af5e87 |
comparison
equal
deleted
inserted
replaced
94:f6836a604322 | 95:b5cc76f18256 |
---|---|
67 msg.set_charset("UTF-8") | 67 msg.set_charset("UTF-8") |
68 msg["Subject"] = cfg.email_subject | 68 msg["Subject"] = cfg.email_subject |
69 msg["From"] = cfg.email_sender | 69 msg["From"] = cfg.email_sender |
70 msg["To"] = ",".join(cfg.email_to) | 70 msg["To"] = ",".join(cfg.email_to) |
71 try: | 71 try: |
72 smtpH = smtplib.SMTP(cfg.email_server) | 72 server = smtplib.SMTP(cfg.email_server) |
73 smtpH.sendmail(cfg.email_sender, cfg.email_to, msg.as_string()) | 73 if gcm_check_debug(4): |
74 smtpH.quit() | 74 server.set_debuglevel(10) |
75 | |
76 if cfg.email_use_tls: | |
77 server.starttls() | |
78 | |
79 server.login(cfg.email_srv_user, cfg.email_srv_password) | |
80 server.sendmail(cfg.email_sender, cfg.email_to, msg.as_string()) | |
81 server.quit() | |
75 except Exception as e: | 82 except Exception as e: |
76 gcm_print(u"FATAL: Oh crap, e-mail sending failed: {0}".format(str(e))) | 83 gcm_print(u"FATAL: Oh crap, e-mail sending failed: {0}".format(str(e))) |
77 sys.exit(1) | 84 sys.exit(1) |
78 | 85 |
79 | 86 |
351 cfg.mdef("email_ok", False, None, None, False) | 358 cfg.mdef("email_ok", False, None, None, False) |
352 cfg.mdef("email", True, cfg.is_bool, cfg.trans_bool, False) | 359 cfg.mdef("email", True, cfg.is_bool, cfg.trans_bool, False) |
353 cfg.mdef("email_to", True, cfg.is_email_list, cfg.trans_email_list, None) | 360 cfg.mdef("email_to", True, cfg.is_email_list, cfg.trans_email_list, None) |
354 cfg.mdef("email_sender", True, cfg.is_email, None, None) | 361 cfg.mdef("email_sender", True, cfg.is_email, None, None) |
355 cfg.mdef("email_subject", True, cfg.is_string, None, u"Google Calendar MultiMerge status") | 362 cfg.mdef("email_subject", True, cfg.is_string, None, u"Google Calendar MultiMerge status") |
363 | |
364 cfg.mdef("email_use_tls", True, cfg.is_bool, cfg.trans_bool, False) | |
356 cfg.mdef("email_server", True, cfg.is_string, None, None) | 365 cfg.mdef("email_server", True, cfg.is_string, None, None) |
366 cfg.mdef("email_srv_user", True, cfg.is_string, None, None) | |
367 cfg.mdef("email_srv_password", True, cfg.is_string, None, None) | |
357 | 368 |
358 cfg.mdef("source_regex", True, cfg.is_string, None, u"^R:\s*(.*?)\s*\(\s*(.+?)\s*\)\s*$") | 369 cfg.mdef("source_regex", True, cfg.is_string, None, u"^R:\s*(.*?)\s*\(\s*(.+?)\s*\)\s*$") |
359 cfg.mdef("source_regmap", False, cfg.is_list, cfg.trans_list, [1, 2]) | 370 cfg.mdef("source_regmap", False, cfg.is_list, cfg.trans_list, [1, 2]) |
360 cfg.mdef("source_regmap_len", False, None, None, len(cfg.source_regmap)) | 371 cfg.mdef("source_regmap_len", False, None, None, len(cfg.source_regmap)) |
361 | 372 |
425 gcm_fatal(u"Invalid source_regmap: {0}".format(str(e))) | 436 gcm_fatal(u"Invalid source_regmap: {0}".format(str(e))) |
426 | 437 |
427 | 438 |
428 if not cfg.dest_regex and not cfg.dest_id: | 439 if not cfg.dest_regex and not cfg.dest_id: |
429 gcm_fatal(u"Target calendar ID or name required, but not set.") | 440 gcm_fatal(u"Target calendar ID or name required, but not set.") |
430 | |
431 | 441 |
432 | 442 |
433 ## Initialize and authorize API connection | 443 ## Initialize and authorize API connection |
434 credentials = gcm_get_credentials(cfg) | 444 credentials = gcm_get_credentials(cfg) |
435 http = credentials.authorize(httplib2.Http()) | 445 http = credentials.authorize(httplib2.Http()) |