Python 發郵件服務
阿新 • • 發佈:2019-02-16
最近要監控下寫的某些指令碼,因為簡訊通知一般都不是免費的,所以還是發郵件比較簡單,並且找到一種變相收到簡訊的方法。
163 繫結郵箱後可以開通手機號碼郵箱,然後在設定裡開通免費簡訊通知服務,這樣當監控郵件傳送到郵箱時,手機就會收到簡訊了。哈哈。。。。
因為郵件服務是一個公用服務,為方便呼叫。可以把這個郵件模組放在PYTHONPATH下:
python 定位模組的機制:
當你匯入一個模組,Python解析器對模組位置的搜尋順序是:
1. 當前目錄
2. 如果不在當前目錄,Python 則搜尋在 shell 變數 PYTHONPATH 下的每個目錄。
3. 如果都找不到,Python會察看預設路徑。UNIX下,預設路徑一般為/usr/local/lib/python/。
模組搜尋路徑儲存在system模組的 sys.path 變數中。變數裡包含當前目錄,PYTHONPATH和由安裝過程決定的預設目錄。
把寫的notify.py放到 python 搜尋路徑下,就可以直接import 呼叫了。
notify.py 程式碼如下:
#!/usr/bin/python
# coding=utf-8
import smtplib
import sys
import email
from email.mime.text import MIMEText
#receiver_address 收件人地址
#content 要傳送的郵件內容
def sendmail(receiver_address,content):
host = 'smtp.163.com' # 設定發件伺服器地址
port = 25 # 設定發件伺服器埠號。注意,這裡有SSL和非SSL兩種形式
sender = '***@163.com' # 設定發件郵箱,一定要自己註冊的郵箱
pwd = '******' # 設定發件郵箱的密碼,等會登陸會用到
receiver = receiver_address # 設定郵件接收人
body = '<h2>告警!!!</h2><p>'+content+'</p>' # 設定郵件正文,這裡是支援HTML的
msg = MIMEText(body,'html',_charset="utf-8") # 設定正文為符合郵件格式的HTML內容 _charset引數可以防止傳送中文時亂碼
msg['subject'] = '哈哈,你的服務掛了!!!' # 設定郵件標題
msg['from'] = sender # 設定傳送人
msg['to'] = receiver # 設定接收人
s = smtplib.SMTP(host, port) # 注意!如果是使用SSL埠,這裡就要改為SMTP_SSL
s.login(sender, pwd) # 登陸郵箱
s.sendmail(sender, receiver, msg.as_string()) # 傳送郵件!