1. 程式人生 > >python 傳送郵件 -- 解析配置檔案

python 傳送郵件 -- 解析配置檔案

昨天做了一個用python傳送郵件的模組。因為是用在專案中,所以寫得比較模組化一點,增加了賬戶的配置檔案,所以其中也用到了Python 配置檔案解析模組。把他們集中在一起,以供新手參考,對有同樣需求的新手,望有所幫助。實現過程中參考了 這兩篇文章,特此感謝 python傳送郵件參考1 和這個 python 配置檔案解析

傳送郵件模組

import ConfigParser
import smtplib
from email.mime.text import MIMEText


conf = ConfigParser.ConfigParser()
conf.read('test.cfg')

#sections = conf.sections()
#options = conf.options('section_a')

mail_to = conf.get('section_a','mail_to')
mail_host = conf.get('section_a','mail_host')
mail_user = conf.get('section_a','mail_user')
mail_passwd = conf.get('section_a','mail_passwd')
mail_postfix = conf.get('section_a','mail_postfix')

def send_mail(mail_to, subject, content):
    me = mail_user + '@' + mail_postfix
    msg = MIMEText(content,_subtype='plain',_charset='utf-8')
    msg['Subject'] = subject
    msg['From'] = me
    msg['To'] = mail_to

    try:
        sv = smtplib.SMTP()
        sv.connect(mail_host)
        sv.login(mail_user, mail_passwd)
        sv.sendmail(me,mail_to, msg.as_string())
        sv.close()
        return True
    except Exception, e:
        print str(e)
        return False

if __name__ == '__main__':
    subject = 'Python test'
    content = 'Nothing in this world is free!'
    if send_mail(mail_to,subject,content):
        print 'sent success'
    else:
        print 'sent failed'

配置檔案 test.cfg 。當然,上面的例子中 這個檔案是和 .py 檔案是在同一個目錄下的,如果不在,配置路徑就可以。
[section_a]
mail_host = smtp.163.com
mail_user = yourusername
mail_postfix = 163.com
mail_passwd = yourpasswd
mail_to = [email protected]

整個模組就是這樣了,包含了 python 傳送郵件 和 python 配置檔案解析的 主要用法,如果深入學習,可以就裡面出現的具體的部分到 python 的官方文件中閱讀。