Advertisement
Guest User

Untitled

a guest
Jun 7th, 2017
511
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. #!/usr/bin/python
  2. #####################################################################
  3. #
  4. # Created by: Luis Nabais <mail@luisnabais.com>
  5. # Updated: 2017-05-18
  6. #
  7. #####################################################################
  8.  
  9. import smtplib
  10. import string
  11. import traceback
  12. import sys
  13. import argparse
  14. import re
  15. from email.mime.text import MIMEText
  16.  
  17.  
  18. parser = argparse.ArgumentParser()
  19.  
  20. parser.add_argument("-f", "--fromaddr", help="From address", default="FROM_EMAIL_ADDR")
  21.  
  22. parser.add_argument("-t", "--toaddr", help="To address(es) - multiple split by comma", default="TO_EMAIL_ADDRESS")
  23. parser.add_argument("-u", "--subject", help="Message Body", default="SUBJECT")
  24. parser.add_argument("-m", "--message", help="Message Body", default="BODY")
  25. parser.add_argument("-o", "--msgfile", help="Message Body", default="")
  26. parser.add_argument("-s", "--server", help="SMTP Server", default="SMTP_SERVER")
  27.  
  28. parser.add_argument("-xu", "--user", help="Username", default="USERNAME")
  29. parser.add_argument("-xp", "--password", help="Password", default="PASSWORD")
  30. parser.add_argument("-p", "--port", help="SMTP Server Port", default=25)
  31.  
  32. args = parser.parse_args()
  33.  
  34.  
  35. fromaddr = args.fromaddr
  36. toaddrs = args.toaddr
  37. subject = args.subject
  38. message = args.message
  39. message_file = args.msgfile
  40. server_smtp = args.server
  41. user = args.user
  42. password = args.password
  43. port_smtp = args.port
  44.  
  45. if message_file != "":
  46. with open(message_file) as fp:
  47. message = str(MIMEText(fp.read()))
  48.  
  49. ansi_escape = re.compile(r'(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]')
  50. message = ansi_escape.sub('', message)
  51.  
  52.  
  53. if ',' in toaddrs:
  54. toaddrs = toaddrs.split(",")
  55.  
  56. string = ""
  57. BODY = string.join((
  58. "Subject:" + subject + "\n",
  59. "\n",
  60. message + "\n"
  61. ))
  62.  
  63. try:
  64. server = smtplib.SMTP(host=server_smtp, port=port_smtp)
  65. server.starttls()
  66. #server.set_debuglevel(True)
  67. #server.esmtp_features['auth'] = 'STARTTLS'
  68. server.login(user, password)
  69. server.sendmail(fromaddr, toaddrs, str(BODY))
  70. server.quit()
  71.  
  72. except smtplib.SMTPServerDisconnected:
  73. print("smtplib.SMTPServerDisconnected")
  74. except smtplib.SMTPResponseException as e:
  75. print("smtplib.SMTPResponseException: " + str(e.smtp_code) + " " + str(e.smtp_error))
  76. except smtplib.SMTPSenderRefused:
  77. print("smtplib.SMTPSenderRefused")
  78. except smtplib.SMTPRecipientsRefused:
  79. print("smtplib.SMTPRecipientsRefused")
  80. except smtplib.SMTPDataError:
  81. print("smtplib.SMTPDataError")
  82. except smtplib.SMTPConnectError:
  83. print("smtplib.SMTPConnectError")
  84. except smtplib.SMTPHeloError:
  85. print("smtplib.SMTPHeloError")
  86. except smtplib.SMTPAuthenticationError:
  87. print("smtplib.SMTPAuthenticationError")
  88. except Exception as e:
  89. print("Exception", e)
  90. print(traceback.format_exc())
  91. print(sys.exc_info()[0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement