mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	lf_mail.py : using the logg
This commit is contained in:
		
							
								
								
									
										41
									
								
								lf_mail.py
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								lf_mail.py
									
									
									
									
									
								
							| @@ -1,6 +1,10 @@ | ||||
| #!/usr/bin/python3 | ||||
| import smtplib | ||||
| import argparse | ||||
| import logging | ||||
| import sys | ||||
|  | ||||
| FORMAT = '%(asctime)s %(name)s %(levelname)s: %(message)s' | ||||
|  | ||||
| EPILOG = '''\  | ||||
| Text message via email: | ||||
| @@ -26,6 +30,17 @@ def usage(): | ||||
|     print("-s  | --smtp    smtp server     --smtp <smtp server>  default  smtp.gmail.com  default=smtp.gmail.com") | ||||
|     print("-p  | --port    smtp port       --port <port>  default 465 (SSL)  default=465") | ||||
|  | ||||
| # see https://stackoverflow.com/a/13306095/11014343 | ||||
| class FileAdapter(object): | ||||
|     def __init__(self, logger): | ||||
|         self.logger = logger | ||||
|     def write(self, data): | ||||
|         # NOTE: data can be a partial line, multiple lines | ||||
|         data = data.strip() # ignore leading/trailing whitespace | ||||
|         if data: # non-blank | ||||
|            self.logger.info(data) | ||||
|     def flush(self): | ||||
|         pass  # leave it to logging to flush properly | ||||
|  | ||||
| def main(): | ||||
|  | ||||
| @@ -38,28 +53,46 @@ def main(): | ||||
|     parser.add_argument("-b", "--body",      type=str, help="email body      --body <body text>", required = True) | ||||
|     parser.add_argument("-s,", "--smtp",     type=str, help="smtp server     --smtp <smtp server>  default  smtp.gmail.com ", default="smtp.gmail.com") | ||||
|     parser.add_argument("-p,", "--port",     type=str, help="smtp port       --port <port>  default 465 (SSL)", default="465") | ||||
|     parser.add_argument("-l", "--loge",      type=str, help="logfile for messages, stdout means output to console",default="stdout") | ||||
|  | ||||
|  | ||||
|     args = None | ||||
|     try: | ||||
|        args = parser.parse_args() | ||||
|        logfile = args.log | ||||
|     except Exception as e: | ||||
|       print(e) | ||||
|       usage() | ||||
|       exit(2)         | ||||
|     | ||||
|     console_handler = logging.StreamHandler() | ||||
|     formatter = logging.Formatter(FORMAT) | ||||
|     logg = logging.getLogger(__name__) | ||||
|     logg.setLevel(logging.DEBUG) | ||||
|     file_handler = None | ||||
|     if (logfile is not None): | ||||
|        if (logfile != "stdout"): | ||||
|            file_handler = logging.FileHandler(logfile, "w") | ||||
|  | ||||
|     email_text = 'Subject: {}\n\n{}'.format(args.subject, args.body ) | ||||
|            file_handler.setLevel(logging.DEBUG) | ||||
|            file_handler.setFormatter(formatter) | ||||
|            logg.addHandler(file_handler) | ||||
|            logg.addHandler(logging.StreamHandler(sys.stdout)) # allows to logging to file and stderr | ||||
|        else: | ||||
|            # stdout logging | ||||
|            logging.basicConfig(format=FORMAT, handlers=[console_handler]) | ||||
|     try: | ||||
|         email_text = 'Subject: {}\n\n{}'.format(args.subject, args.body ) | ||||
|         server = smtplib.SMTP_SSL(args.smtp, int(args.port)) | ||||
|         server.ehlo() | ||||
|         server.login(args.user,args.passwd) | ||||
|         server.sendmail(args.user, args.to, email_text) | ||||
|         server.close() | ||||
|  | ||||
|         print('email Sent!  smtp server: {} port: {}'.format(args.smtp, args.port)) | ||||
|         logg.info('email Sent!  smtp server: {} port: {}'.format(args.smtp, args.port)) | ||||
|     except: | ||||
|         print('email failed') | ||||
|         print("Is access for less secure apps setting has been turned on for the email account?") | ||||
|         logg.info('email failed') | ||||
|         logg.info("Is access for less secure apps setting has been turned on for the email account?") | ||||
|  | ||||
| # ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- | ||||
| if __name__ == '__main__': | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Chuck SmileyRekiere
					Chuck SmileyRekiere