mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +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
|
#!/usr/bin/python3
|
||||||
import smtplib
|
import smtplib
|
||||||
import argparse
|
import argparse
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
|
FORMAT = '%(asctime)s %(name)s %(levelname)s: %(message)s'
|
||||||
|
|
||||||
EPILOG = '''\
|
EPILOG = '''\
|
||||||
Text message via email:
|
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("-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")
|
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():
|
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("-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("-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("-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
|
args = None
|
||||||
try:
|
try:
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
logfile = args.log
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
usage()
|
usage()
|
||||||
exit(2)
|
exit(2)
|
||||||
|
|
||||||
email_text = 'Subject: {}\n\n{}'.format(args.subject, args.body )
|
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")
|
||||||
|
|
||||||
|
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:
|
try:
|
||||||
|
email_text = 'Subject: {}\n\n{}'.format(args.subject, args.body )
|
||||||
server = smtplib.SMTP_SSL(args.smtp, int(args.port))
|
server = smtplib.SMTP_SSL(args.smtp, int(args.port))
|
||||||
server.ehlo()
|
server.ehlo()
|
||||||
server.login(args.user,args.passwd)
|
server.login(args.user,args.passwd)
|
||||||
server.sendmail(args.user, args.to, email_text)
|
server.sendmail(args.user, args.to, email_text)
|
||||||
server.close()
|
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:
|
except:
|
||||||
print('email failed')
|
logg.info('email failed')
|
||||||
print("Is access for less secure apps setting has been turned on for the email account?")
|
logg.info("Is access for less secure apps setting has been turned on for the email account?")
|
||||||
|
|
||||||
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
Reference in New Issue
Block a user