1. 程式人生 > >Python 發郵件服務

Python 發郵件服務

最近要監控下寫的某些指令碼,因為簡訊通知一般都不是免費的,所以還是發郵件比較簡單,並且找到一種變相收到簡訊的方法。
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()) # 傳送郵件!