Browse Source

IOS推送异常发送邮件提醒

locky 2 năm trước cách đây
mục cha
commit
f96f185c8e
2 tập tin đã thay đổi với 48 bổ sung1 xóa
  1. 45 0
      Object/S3Email.py
  2. 3 1
      Service/PushService.py

+ 45 - 0
Object/S3Email.py

@@ -0,0 +1,45 @@
+# @Author    : Rocky
+# @File      : S3Email.py
+# @Time      : 2023/8/11 10:01
+import smtplib
+import email.utils
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
+
+SENDER = 'rdpublic@ansjer.com'
+SENDER_NAME = 'rdpublic@ansjer.com'
+USERNAME_SMTP = 'AKIA2E67UIMD6MOSFKXW'  # 带有邮件权限的 IAM 帐号
+PASSWORD_SMTP = 'BHuQ6EQTtFK4qh46o9omO9ZzO3NXzjk/JCWLXnVFmqzM'  # 带有邮件权限的 IAM 密码
+HOST = 'email-smtp.us-east-1.amazonaws.com'
+PORT = 587
+
+
+class S3Email:
+
+    @staticmethod
+    def send_email(email_content, username):
+        body_text = (email_content)
+        body_html = """<html>
+        <head></head>
+        <body>
+            <h1>{}<h1>
+        </body>
+        </html>
+        """.format(email_content)
+
+        msg = MIMEMultipart('alternative')
+        msg['Subject'] = email_content
+        msg['From'] = email.utils.formataddr((SENDER_NAME, SENDER))
+        msg['To'] = username
+        part1 = MIMEText(body_text, 'plain')
+        part2 = MIMEText(body_html, 'html')
+        msg.attach(part1)
+        msg.attach(part2)
+
+        server = smtplib.SMTP(HOST, PORT)
+        server.ehlo()
+        server.starttls()
+        server.ehlo()
+        server.login(USERNAME_SMTP, PASSWORD_SMTP)
+        server.sendmail(SENDER, username, msg.as_string())
+        server.close()

+ 3 - 1
Service/PushService.py

@@ -19,6 +19,7 @@ from pyfcm import FCMNotification
 from AnsjerPush.config import APP_BUNDLE_DICT, APNS_MODE, BASE_DIR, APNS_CONFIG, FCM_CONFIG, JPUSH_CONFIG, XMPUSH_CONFIG \
     , VIVOPUSH_CONFIG, OPPOPUSH_CONFIG, MEIZUPUSH_CONFIG
 from Model.models import UidPushModel
+from Object.S3Email import S3Email
 from Service.CommonService import CommonService
 from Service.VivoPushService.push_admin.APIMessage import PushMessage
 from Service.VivoPushService.push_admin.APISender import APISender
@@ -134,7 +135,8 @@ class PushObject:
             assert res.status_code == 200
         except Exception as e:
             logger.info('--->IOS推送异常{}'.format(repr(e)))
-            return repr(e)
+            email_content = 'IOS推送异常: {}'.format(repr(e))
+            S3Email().send_email(email_content, 'servers@ansjer.com')
 
     @staticmethod
     def android_fcm_push(nickname, app_bundle_id, token_val, n_time, event_type, msg_title, msg_text,