1. 程式人生 > >Python之郵件傳送

Python之郵件傳送

專案中用到的郵件傳送模組,有傳送附件功能

直接上程式碼:

-----------------------------------------

呼叫方法的程式碼,命名為main.py,需要注意的地方見程式碼上方的備註:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from sendMail import *

if __name__ == '__main__':

    # 傳送方,必須為開通了smtp服務的郵箱賬號,,否則無法通過程式傳送郵件。怎麼開通smtp服務,

    #郵箱頁面會有說明,我當時開通126是通過手機號進行驗證後,就ok

    from_address='

[email protected]'

    # 傳送方郵箱密碼

    from_pwd='flyTester123456'

    # 傳送方的smtp伺服器,再次強調!!!想實現傳送郵件功能,必須開通smtp服務!!!

    from_smtp='smtp.126.com'

    # 接收郵件列表,list形式,如['[email protected]','[email protected]','[email protected]']

    mail_list=['[email protected]','[email protected]

']

    # 郵件標題

    header='每時監控統計記錄'

    # 郵件正文,可以任意寫內容

    mail_body='本次統計記錄,見附件'

    # 附件路徑,這次想將一個excel放到附件中傳送

    file='D:/mywork/data/2016-08-16.xlsx'

    # 郵件中顯示的附件名稱,附件在郵件中以此名顯示

    filename='統計表.xlsx'

    # 呼叫傳送郵件模組,並接收返回值,此值包括了郵件是否傳送成功,具體會返回什麼,詳見郵件發

    #送模組

    result=send_mail(file,filename,from_address,from_pwd,from_smtp,mail_list,header,mail_body)

    # 列印返回值

    print result

--------------------------------------------------------------------------------------------

傳送郵件的程式碼,命名為sendMail.py,需要注意的地方見程式碼上方的備註:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from email.mime.text import MIMEText

from email.header import Header

from email import MIMEBase

from email import Encoders

from email import MIMEMultipart

import smtplib

# 定義傳送郵件

def send_mail(file,filename,from_address,from_pwd,from_smtp,mail_list,header,mail_body):

    try:

      # 得到郵件例項

      msg = MIMEMultipart.MIMEMultipart()

      # ----------------------------------郵件正文-------------------------------

      body = MIMEText(mail_body, 'html', 'utf-8')

      msg.attach(body)

      # ----------------------------------郵件標題-------------------------------

      msg['Subject'] = Header(header,'utf-8')

      # ----------------------------------傳送者---------------------------------

      msg['From'] = from_address

      # ----------------------------------接收者,list列表形式,如

      #['[email protected]','[email protected]','[email protected]']

      msg['To'] = ";".join(mail_list)

      # ----------------------------------新增附件-------------------------------

      part = MIMEBase.MIMEBase('application', 'octet-stream')

      part.set_payload(open(file, 'rb').read())

      # 指定附件編碼

      Encoders.encode_base64(part)

      # 附件在郵件中顯示的名稱

      part.add_header('Content-Disposition', 'attachment; filename='+filename)

      # 加入附件

      msg.attach(part)

      # -------------------------------- smtp伺服器-----------------------------

      smtp = smtplib.SMTP()

      smtp.connect(from_smtp)

      # ---------------------------------傳送-----------------------------------

      # 登入郵箱

      smtp.login(from_address, from_pwd)

      # 傳送郵件

      smtp.sendmail(from_address, mail_list, msg.as_string())

      smtp.quit()

      return 'email has send out !'

    except Exception,e:

      return 'send mail error !!! ',e

------------------------------------------------------------------------------------------------------------------------------------

更多請關注:FlyTester,關注技術的測試者

QQ群:456850134

web站:www.flytester.org

微信掃描二維碼關注:



相關推薦

no