1. 程式人生 > 實用技巧 >呼叫python介面實現傳送郵件

呼叫python介面實現傳送郵件

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import flask, json
from flask import request
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
'''
flask: web框架,通過flask提供的裝飾器@server.route()將普通函式轉換為服務
登入介面,需要傳url、username、passwd
'''
# 建立一個服務,把當前這個python檔案當做一個服務
server = flask.Flask(__name__
) # server.config['JSON_AS_ASCII'] = False # @server.route()可以將普通函式轉變為服務 登入介面的路徑、請求方式 @server.route('/email', methods=['get', 'post']) def login(): # 獲取通過url請求傳參的資料 msg = request.values.get('msg') # 獲取url請求傳的密碼,明文 address = request.values.get('address') # 判斷使用者名稱、密碼都不為空,如果不傳使用者名稱、密碼則username和pwd為None
if msg and address: resu = {'code': 200, 'message': '登入成功'} ret=mail(address,msg) if ret: print("郵件傳送成功") else: print("郵件傳送失敗") return json.dumps(resu, ensure_ascii=False) # 將字典轉換為json串, json是字串 else: resu = {'code': 10001, '
message': '引數不能為空!'} return json.dumps(resu, ensure_ascii=False) #sendmail函式 my_sender= '[email protected]' # 發件人郵箱賬號 my_pass = 'ycxlplrdfkzjjiie' # 發件人郵箱密碼 my_user='[email protected]' # 收件人郵箱賬號,我這邊傳送給自己 def mail(TO,MESSAGE): ret=True try: sendmsg=MIMEText(MESSAGE) sendmsg['From']=formataddr(["kafka",my_sender]) # 括號裡的對應發件人郵箱暱稱、發件人郵箱賬號 sendmsg['To']=formataddr(["FK",TO]) # 括號裡的對應收件人郵箱暱稱、收件人郵箱賬號 sendmsg['Subject']="kafka報警服務" # 郵件的主題,也可以說是標題 server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 發件人郵箱中的SMTP伺服器,埠是25 server.login(my_sender, my_pass) # 括號中對應的是發件人郵箱賬號、郵箱密碼 server.sendmail(my_sender,[my_user,],sendmsg.as_string()) # 括號中對應的是發件人郵箱賬號、收件人郵箱賬號、傳送郵件 server.quit() # 關閉連線 except Exception: # 如果 try 中的語句沒有執行,則會執行下面的 ret=False ret=False return ret # ret=mail() # if ret: # print("郵件傳送成功") # else: # print("郵件傳送失敗") if __name__ == '__main__': server.run(debug=True, port=8888, host='0.0.0.0')# 指定埠、host,0.0.0.0代表不管幾個網絡卡,任何ip都可以訪問