S3Email.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import smtplib
  2. import email.utils
  3. from email.mime.multipart import MIMEMultipart
  4. from email.mime.text import MIMEText
  5. from Ansjer.config import SES_SENDER, SES_SENDERNAME, SES_USERNAME_SMTP, SES_PASSWORD_SMTP, SES_PORT, SES_HOST
  6. class S3Email:
  7. def faEmail(self, sys_msg_text, username):
  8. SENDER = 'rdpublic@ansjer.com' # 邮箱名
  9. SENDERNAME = 'rdpublic@ansjer.com'
  10. USERNAME_SMTP = 'AKIA2E67UIMD6MOSFKXW' # 带有邮件权限的 IAM 帐号
  11. PASSWORD_SMTP = 'BHuQ6EQTtFK4qh46o9omO9ZzO3NXzjk/JCWLXnVFmqzM' # 带有邮件权限的 IAM 密码
  12. PORT = '587'
  13. HOST = 'email-smtp.us-east-1.amazonaws.com'
  14. SUBJECT = sys_msg_text
  15. BODY_TEXT = (sys_msg_text
  16. )
  17. BODY_HTML = """<html>
  18. <head></head>
  19. <body>
  20. <h1>{}<h1>
  21. </body>
  22. </html>
  23. """.format(sys_msg_text)
  24. msg = MIMEMultipart('alternative')
  25. msg['Subject'] = SUBJECT
  26. msg['From'] = email.utils.formataddr((SENDERNAME, SENDER))
  27. msg['To'] = username
  28. part1 = MIMEText(BODY_TEXT, 'plain')
  29. part2 = MIMEText(BODY_HTML, 'html')
  30. msg.attach(part1)
  31. msg.attach(part2)
  32. try:
  33. server = smtplib.SMTP(HOST, PORT)
  34. server.ehlo()
  35. server.starttls()
  36. server.ehlo()
  37. server.login(USERNAME_SMTP, PASSWORD_SMTP)
  38. server.sendmail(SENDER, username, msg.as_string())
  39. server.close()
  40. except Exception as e:
  41. print("Error: ", e)
  42. else:
  43. print("Email sent!")
  44. @staticmethod
  45. def send_email(title, data, username):
  46. """
  47. 发送亚马逊SES电子邮件
  48. @param title: 标题
  49. @param data: 内容
  50. @param username: 发送到邮箱
  51. @return: 成功 | 失败
  52. """
  53. SUBJECT = title
  54. BODY_TEXT = (title
  55. )
  56. BODY_HTML = data
  57. msg = MIMEMultipart('alternative')
  58. msg['Subject'] = SUBJECT
  59. msg['From'] = email.utils.formataddr((SES_SENDERNAME, SES_SENDER))
  60. msg['To'] = username
  61. part1 = MIMEText(BODY_TEXT, 'plain')
  62. part2 = MIMEText(BODY_HTML, 'html')
  63. msg.attach(part1)
  64. msg.attach(part2)
  65. try:
  66. server = smtplib.SMTP(SES_HOST, SES_PORT)
  67. server.ehlo()
  68. server.starttls()
  69. server.ehlo()
  70. server.login(SES_USERNAME_SMTP, SES_PASSWORD_SMTP)
  71. server.sendmail(SES_SENDER, username, msg.as_string())
  72. server.close()
  73. return True
  74. except Exception as e:
  75. print(repr(e))
  76. return False