1. 程式人生 > >【Python】一鍵式發郵件小指令碼

【Python】一鍵式發郵件小指令碼

     工作中涉及到給客戶定時發郵件,這裡提供一個Python小指令碼,單獨放進一個py小檔案,每次用時import一下非常簡單方便。

# !/usr/bin/python
# -*- coding: utf-8 -*-
#
# create_author: (JAVA COE_OPS TEAM)[email protected]
# create_time  : 2016-10-10
# NOTICE       : *_*mail config*_*
#
#
import logging
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
#
#
# class obj
class Mail():
    def __init__(self, msg_from, msg_to, msg_subject, text, path_file, host, port, user, password):
        self.msg_from    = msg_from         # 發件箱——————""
        self.msg_to      = msg_to           # 收件箱——————["",""]
        self.msg_subject = msg_subject      # 郵件主題————""
        self.text        = text             # 郵件正文————""
        self.path_file   = path_file        # 郵件附件————[{"path" : "", "name" : ""}, {"path" : "", "name" : ""}]
        self.host        = host             # 伺服器——————"smtp.163.com"
        self.port        = port             # 埠號——————25
        self.user        = user             # 發件箱使用者———""
        self.password    = password         # 發件箱密碼————""
#
    def __str__(self):
        tranceback = "An e-mail from \"%s\" to \"%s\" under subject of \"%s\"…………" % (self.msg_from, self.msg_to, self.msg_subject)
        return tranceback
#
    def csmail(self):
        msg = MIMEMultipart()
        try:
            msg['from']    = self.msg_from
            msg['to']      = ','.join(self.msg_to)  # because of a BUG of smtplib
            msg['subject'] = self.msg_subject
            msg.attach(MIMEText(self.text))
            if self.path_file:
                for i in self.path_file:
                    msg_attach  = MIMEText(open(i['path'], "rb").read(), "base64", "utf-8")
                    attach_name = i['name']
                    msg_attach.add_header("Content-Disposition", "attachment", filename=attach_name)
                    msg_attach["Content-Type"] = "application/octet-stream"
                    msg.attach(msg_attach)
        except Exception, e:
            logging.error("create email under subject \"%s\" failed! Detail: %s" % (self.msg_subject , e))
            exit()
        ser = smtplib.SMTP()
        try:
            ser.connect(host=self.host, port=self.port)
            ser.login(user=self.user, password=self.password)
            ser.sendmail(msg['from'], self.msg_to, msg.as_string())
            ser.quit()
        except Exception, e:
            logging.error("send email under subject \"%s\" failed! Detail: %s" % (self.msg_subject , e))
            exit()


     以下是一個小示例。

MSG = {"msg_from"    : "……@163.com",
"msg_to"      : ["……@qq.com", "……@…….com"],
"msg_subject" : "Hello收件人",
"text"        : "測試郵件(generate by Python2.7.12)",
"path_file"   : [{"path" : moudle_base.rount() + "附件1" + moudle_base.curtime() + ".xlsx",
"name" : "附件1" + moudle_base.curtime() + ".xlsx"
}, {"path" : moudle_base.rount() + "附件2" + moudle_base.curtime() + ".xlsx", "name" : "附件2" + moudle_base.curtime() + ".xlsx"}], "host" : "smtp.163.com", "port" : 25, "user" : "……", "password" : "……" } mail = Mail(**MSG) print(mail) mail.csmail()


相關推薦

Python郵件指令碼

     工作中涉及到給客戶定時發郵件,這裡提供一個Python小指令碼,單獨放進一個py小檔案,每次用時import一下非常簡單方便。 # !/usr/bin/python # -*- coding: utf-8 -*- # # create_author: (JAVA

vim + ctags + taglist配置和使用 安裝 ctags和cscope的方法 vim語法高亮,自動縮排,python 自動縮排設定

1, vim + ctags + taglist配置和使用 taglist依賴於ctags,所以要先裝ctags,否則taglist裝了也沒法用! 1、首先安裝ctags 首先是ctags的安裝,推薦使用exuberant ctags,我們可以從其官方網站上下載它的原始碼包

python-socketServer多並

服務 技術分享 tcp 就會 CP log 服務器 pytho 好用 多線程並發: 修改以上信息即可. 多並發:每來一個請求,服務器就會開一個線程。開啟這個線程和這個額連接進行交互。 多進程並發: ForkingTCPServer在linux上好用。 【pyth

python文弄懂迭代器iteror(__next__)物件與可迭代iterable物件

一、定義區別 剛開始學的經常會被迭代器與可迭代物件弄混淆,下面清晰的介紹兩者的不同。 迭代器 Iterator (物件):如果一個物件同時擁有__iter__  和 __next__方法的(物件),也就是說可以被next()函式呼叫並不斷返回下一個值的物件稱為迭

PythonPython基礎

0 序 先講一個故事。西漢初期,丞相蕭何死後,由曹參接任,曹丞相一天到晚都請人喝酒聊天,好像根本就不用心在治理國家似的。惠帝感到很納悶,又想不出個所以然來,只以為是曹相國嫌他太年輕了,看不起他,所以就不願意盡心盡力來輔佐他。終於有一天漢惠帝責問曹參,曹參反問“請

教程挖礦就這麼簡單-ITGC

最近有很多朋友請教我如何挖礦,而挖礦這個事,三言兩語又很難說清楚,目前主流幣過高的挖礦投入、技術門檻都讓小白們“望幣興嘆”。對於新朋友而言,再生派(ITGC)是一個很好的切入點。 再生派(貨幣代號ITGC),一個基於區塊鏈的跨平臺、多落地應用的資源再流通生

Android清理後臺實現附原始碼

整個程式很簡單 只有一個CleanActivity,實現清理後臺及並展示動畫效果 一個桌面小部件,點選啟動CleanActivity,實現同樣效果 一.  CleanActivity的實現 1.  主程式佈局 對應佈局為檔案為 R.layout.activity_clea

Machine LearningPython、HoG + SVM 物體分類 ---- 《SVM物體分類和定位檢測》

----------【2018.09.07更新】--- 如果你看到了這篇文章,並且從github下載了程式碼想走一遍整個流程。我強烈建議你把《SVM物體分類和定位檢測》這一系列的6篇文章都仔細看一遍。內容不多,但會對你理解演算法和程式碼有很大的幫助。 ----------

實戰呼叫的app專案

簡單的android的一建呼叫專案,點選一鍵呼叫按鈕之後,會自動呼叫電話應用,並撥打電話號碼。下面給出專案連線地址點選開啟連結 MainActivity.java檔案內容; package com

leetcode#陣列Python64. Minimum Path Sum 最路徑和

連結: 題目: 給定一個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 說明:每次只能向下或者向右移動一步。 示例: 輸入: [ [1,3,

python郵件,含附件

msg 分號 mat gin 內容 nbsp span level mtp def send_mail(_user,_pwd,_to): # f = open(file_new,‘rb‘) # mail_body = f.read() # f.cl

PythonPython郵件(常見四種郵件內容)

.cn .com pytho html 常見 body gpo 詳細 tle 感謝:夢琪小生的《【轉】【Python】Python發送郵件(常見四種郵件內容)》 裏面詳細介紹了Python中發送郵件的方法,以供自己參考【轉】【Python】Python發送郵件(常見四種郵件

Python郵件

color sha .com 分享圖片 pro mar python ado term 【Python】郵件發送

python用SMTP模塊送帶附件的郵件

part cep art ssl tex gbk tar 什麽 -type 第一篇博客!參考鏈接? 在書上看了用SMTP模塊發郵件,試過之後發現並沒有什麽用。163郵箱開啟了SMTP服務後,登陸了發送的時候卻被拒收了。 找了前人的資料,發現被過期的教程害死了。 以下代碼有效

pythonpython每天抓取篇英語美文,送到郵箱

lib 郵件發送 建立 dirname write path div style 需要 import requests,os,time from bs4 import BeautifulSoup import smtplib from email.mime.tex

Python抓取淘寶數據庫月報,郵件,本地存檔,保存元信息

epo 平臺 如果 更改 config 查詢 color into all 用途 定期抓取淘寶數據庫月報 發送郵件,保存到本地,最好是git中 發送元數據到mysql中,後期可以做成接口集成到運維平臺中,便於查詢 使用方式 # 下載(必須) cd ~ &&

解壓tar, tar.gz. tar.bz2, tar.xv檔案的shell指令碼

tar,  tar.gz. tar.bz2, tar.xv等檔案的壓縮和解壓縮引數讓人實在蛋疼, 本著沒有輪子就自己造的原則,寫了這個指令碼,歡迎拍磚. #!/bin/bash #Description: untar *.tar.xz , *.tar.gz, *

Python正則表達1(未完)

pes mmu get regular rop 則表達式 line out github 1、正則表達式唯一的用途就是在文本中匹配和尋找模式,模式可以簡單,也可以復雜。 2、Regexr 這個網站很個性的就是,有一個community標簽,打開後可以看到評分由高到低

python(第一章)1.4 數字和表達

python以下內容是我學習《Python基礎教程》第2版 這本書所寫的筆記 轉載請註明出處1.>>> 2.75%.50.25【不同】C語言中取余運算必須為整數,不能是浮點型2.>>>(-3)**29【不同】C語言中pow (double x,double n);(將返回

Python關於Python多線程的篇文章轉載

daemon def 經典 出了 word 之前 per -- 兩種 yeayee ------>更多技巧------>更多源碼------>http://www.yeayee.com Python 一篇學會多線程 多線程和多進程是什麽自行googl