From 6c38f35fac998834c3ef3ccc9592d5ca1ef8d18a Mon Sep 17 00:00:00 2001 From: Chuck SmileyRekiere Date: Mon, 2 Nov 2020 14:41:31 -0700 Subject: [PATCH] lf_mail.py : helper funtion to send email from lanforge. --- lf_mail.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 lf_mail.py diff --git a/lf_mail.py b/lf_mail.py new file mode 100644 index 00000000..0ba90c80 --- /dev/null +++ b/lf_mail.py @@ -0,0 +1,67 @@ +#!/usr/bin/python3 +import smtplib +import argparse + +EPILOG = '''\ +Text message via email: + +T-Mobile – number@tmomail.net +Virgin Mobile – number@vmobl.com +AT&T – number@txt.att.net +Sprint – number@messaging.sprintpcs.com +Verizon – number@vtext.com +Tracfone – number@mmst5.tracfone.com +Ting – number@message.ting.com +Boost Mobile – number@myboostmobile.com +U.S. Cellular – number@email.uscc.net +Metro PCS – number@mymetropcs.com +''' + +def usage(): + print("-u | --user: email account address --user @gmail.com required = True") + print("-pw | --passwd email password --passwd required = True") + print("-t | --to email send to --to @gmail.com required = True") + print("-su | --subject email subject --subject default Lanforge Report default = Lanforge Report") + print("-b | --body email body --body <body text> required = True") + print("-s | --stmp stmp server --stmp <stmp server> default stmp.gmail.com default=smtp.gmail.com") + print("-p |--port stmp port --port <port> default 465 (SSL) default=465") + + +def main(): + + parser = argparse.ArgumentParser(description="lanforge email",epilog=EPILOG, + formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument("-u", "--user", type=str, help="email account --user <sender>@gmail.com", required = True) + parser.add_argument("-pw", "--passwd", type=str, help="email password --passwd <password for email account>", required = True) + parser.add_argument("-t", "--to", type=str, help="email send to --to <reciever>@gmail.com", required = True) + parser.add_argument("-su", "--subject", type=str, help="email subject --subject <title> default Lanforge Report", default="Lanforge Report") + parser.add_argument("-b", "--body", type=str, help="email body --body <body text>", required = True) + parser.add_argument("-s,", "--stmp", type=str, help="stmp server --stmp <stmp server> default stmp.gmail.com ", default="smtp.gmail.com") + parser.add_argument("-p,", "--port", type=str, help="stmp port --port <port> default 465 (SSL)", default="465") + + + args = None + try: + args = parser.parse_args() + except Exception as e: + print(e) + usage() + exit(2) + + email_text = 'Subject: {}\n\n{}'.format(args.subject, args.body ) + try: + server = smtplib.SMTP_SSL(args.stmp, int(args.port)) + server.ehlo() + server.login(args.user,args.passwd) + server.sendmail(args.user, args.to, email_text) + server.close() + + print('email Sent!') + except: + print('email failed') + print("Is access for less secure apps setting has been turned on for the email account?") + +# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- +if __name__ == '__main__': + main() + print("Lanforge send email via smtp server")