国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python發(fā)送郵件的幾種常用方法

這篇具有很好參考價值的文章主要介紹了python發(fā)送郵件的幾種常用方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

第一種是最常見的,smtp發(fā)送

import smtplib
import sys
import traceback
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import os


def sendEmail(mail_sender, to_list, sub, content, attach_list = [], _subtype="html"):
    """
    使用smtp發(fā)送郵件
    :param mail_sender: 發(fā)件人
    :param to_list: 收件人列表,用,間隔
    :param sub: 主題
    :param content: 內容
    :param attach_list:附件
    :param _subtype: 讀取內容用的方式,不傳html的話改成plain
    :return:
    """
    msg = MIMEMultipart()
    msg['subject'] = sub
    msg['From'] = mail_sender
    msg['To'] = to_list
    try:
        msg.attach(MIMEText(content, _subtype,'utf-8')) #用html的方法是更方便于word文檔作為內容發(fā)送,可以先講word轉換成html,然后寫入其中
        s = smtplib.SMTP('123.com', 25)
        # s.login()
        s.starttls()
        if attach_list:
            for att_path in attach_list:
                path_arr = att_path.split(os.path.sep)
                file_name = path_arr[len(path_arr) - 1]
                att1 = MIMEText(open(att_path,'rb').read(), 'base64','utf-8')
                att1.add_header('Content-Disposition', 'attachment', filename=file_name) #用這個方法可以避免附件亂碼
                msg.attach(att1)
        s.sendmail(mail_sender, to_list.split(u','), msg.as_string())
        s.close()
        print("999921||業(yè)務數據處理||郵件發(fā)送成功")
        return True
    except Exception as e:
        sys.stderr.write("999931||{}".format(traceback.format_exc(limit=None, chain=True)))
        sys.stderr.write("0001")
        return False

第二種是用outlook發(fā)送的,這個大家借鑒使用

import os
from time import sleep
import autoit as au
import win32com.client

class OutlookUtills:
    def __init__(self):

        outlook = win32com.client.Dispatch("outlook.Application ")# outlook.Visible = True
        self.mail = outlook.CreateItem(0)
        self.mail.Display()

    def sendEmail(self, addressee, subiect, AttachmentsPath=[], body=None):
        """
        若body為默認值None則自動粘貼剪切板中內容進行發(fā)送
        :param addressee: 收件人
        :param subiect: 主題
        :param AttachmentsPath: 附件名稱
        :param body: 正文
        :return:
        """
        self.mail. To = addressee
        self.mail.subject = subiect
        if AttachmentsPath == []:
            print("該郵件無附件")
        else:
            for Attachments in AttachmentsPath:
                self.mail.Attachments.Add(Attachments)
                print("地址:{},附件添加成功!!")
        sleep(2)
        if body == None:
            self.mail.body = ""
            au.send('^v')
            print("正文已從剪切板拷貝")
        else:
            self.mail.body = body
            print("正文由函數進行輸入")
        sleep(1)
        self.mail.Send()

if __name__ == '__main__':
    my_outlook = OutlookUtills()


第三種是正文需要用到表格的,我在這里給大家一個示例,具體表格怎么改自行發(fā)揮文章來源地址http://www.zghlxwxcb.cn/news/detail-601037.html

import smtplib
from email.mime.text import MIMEText
from email.header import Header


class Mail:
    def __init__(self):
        # 第三方 SMTP 服務

        self.mail_host = "smtp.qq.com"  # 填寫郵箱服務器:這個是qq郵箱服務器,直接使用smtp.qq.com
        self.mail_pass = "ahlwsnkajalubeif"  # 填寫在qq郵箱設置中獲取的授權碼
        self.sender = '1004983289@qq.com'  # 填寫郵箱地址
        self.receivers = ['tianyi.zhang@kingstarfintech.com']  # 填寫收件人的郵箱,QQ郵箱或者其他郵箱,可多個,中間用,隔開

    def send(self):

        self.mail_host = "smtp.qq.com"  # 填寫郵箱服務器:這個是qq郵箱服務器,直接使用smtp.qq.com
        self.mail_pass = "ahlwsnkajalubeif"  # 填寫在qq郵箱設置中獲取的授權碼
        self.sender = '1004983289@qq.com'  # 填寫郵箱地址
        self.receivers = ['tianyi.zhang@kingstarfintech.com']  # 填寫收件人的郵箱,QQ郵箱或者其他郵箱,可多個,中間用,隔開
        insert = "<tr><td>152371200010240002</td><td>潘金蓮</td><td>tar</td><td>152371200010240002.tar</td><td>20220426-1545</td><td>否</td></tr><tr><td>152371200010240002</td><td>潘金蓮</td><td>tar</td><td>152371200010240002.tar</td><td>20220426-1545</td><td>否</td></tr>"

        head = \
            """
            <head>
                <meta charset="utf-8">
                <STYLE TYPE="text/css" MEDIA=screen>
                    table {
                        border-collapse: collapse;
                        border: 2px solid #a19da2;
                        /*居中顯示整個表格*/
                        margin: auto;
                    }
                    table thead {
                        border: 2px solid #91c6e1;
                        background: #f1f1f1;
                        padding: 10px 10px 10px 10px;
                        color: #333333;
                    }
                    table tbody {
                        border: 2px solid #91c6e1;
                        padding: 10px 10px 10px 10px;
                    }
                    table tr {
                    }
                    table th {
                        vertical-align: top;
                        font-size: 14px;
                        padding: 10px 10px 10px 10px;
                        color: #105de3;
                        font-family: arial;
                        text-align: center;
                    }
                    table td {
                        text-align: center;
                        padding: 10px 10px 10px 10px;
                    }
                    body {
                        font-family: 宋體;
                    }
                    h1 {
                        color: #5db446
                    }
                    div.header h2 {
                        color: #0002e3;
                        font-family: 黑體;
                    }
                    div.content h2 {
                        text-align: center;
                        font-size: 28px;
                        text-shadow: 2px 2px 1px #de4040;
                        color: #fff;
                        font-weight: bold;
                        background-color: #008eb7;
                        line-height: 1.5;
                        margin: 20px 0;
                        box-shadow: 10px 10px 5px #888888;
                        border-radius: 5px;
                    }
                    h3 {
                        font-size: 22px;
                        background-color: rgba(0, 2, 227, 0.71);
                        text-shadow: 2px 2px 1px #de4040;
                        color: rgba(239, 241, 234, 0.99);
                        line-height: 1.5;
                    }
                    h4 {
                        color: #e10092;
                        font-family: 楷體;
                        font-size: 20px;
                        text-align: center;
                    }
                    td img {
                        /*width: 60px;*/
                        max-width: 300px;
                        max-height: 300px;
                    }
                </STYLE>
            </head>
            """
        body = \
            """
            <body>
            <div align="center" class="header">
                <!--標題部分的信息-->
                <h1 align="center">表格中的數據為當天云開戶信息下載及CRM上傳情況</h1>
            </div>
            <hr>
            <div class="content">
                <!--正文內容-->
                <h2> </h2>
                <div>
                    <h4></h4>
                    <table border="1" cellpadding="0" cellspacing="0" width="1600" style="border-collapse: collapse;">
                        <tbody>
                            <thead>
                                <tr><th>身份證號</th><th>姓名</th><th>文件類型</th><th>文件名</th><th>上傳時間</th><th>是否上傳成功</th></tr>
                            </thead>
                            <h2>掌廳不存在身份證不一致情況</h2>
                        </tbody>
                    </table>
                </div>
                <hr>
                <p style="text-align: center">
                </p>
            </div>
            </body>
            """.format(insert)

        html_msg = "<html>" + head + body + "</html>"
        html_msg = html_msg.replace('\n', '').encode("utf-8")
        message = MIMEText(html_msg, 'html', 'utf-8')

        message['From'] = Header("小胖子xpp", 'utf-8')  #郵件發(fā)送者姓名
        message['To'] = Header("小胖子xpp", 'utf-8')    #郵件接收者姓名

        subject = '測試'  #發(fā)送的主題
        message['Subject'] = Header(subject, 'utf-8')
        try:
            smtpObj = smtplib.SMTP_SSL(self.mail_host, 465) #建立smtp連接,qq郵箱必須用ssl邊接,因此邊接465端口
            smtpObj.login(self.sender, self.mail_pass)  #登陸
            smtpObj.sendmail(self.sender, self.receivers, message.as_string())  #發(fā)送
            smtpObj.quit()
            print('發(fā)送成功!!')
        except smtplib.SMTPException as e:
            print('發(fā)送失敗??!')


if __name__ == '__main__':
    mail = Mail()
    mail.send()

到了這里,關于python發(fā)送郵件的幾種常用方法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Windows的幾種常用反彈shell方法

    Windows的幾種常用反彈shell方法

    簡介:shell類似于DOS下的COMMAND.COM和后來的cmd.exe,它接收用戶命令,然后調用相應的應用程序,也可以通俗的說是命令執(zhí)行環(huán)境。分為交互式shell,與非交互式shell。 交互shell就是shell等待你的輸入,并且立即執(zhí)行你提交的命令,這種模式被稱作交互式是因為shell與用戶進行交互

    2024年02月12日
    瀏覽(18)
  • mysql復制表的幾種常用方法

    mysql復制表的幾種常用方法

    遇到需要拷貝一個表及其數據的情況,總結了一下幾種方法 1.使用 show create table 舊表 將結果拷貝出來,將舊表名換成新表名即可. 注意:該方法僅適用于拷貝表結構,不需要同步數據的情況 2.create table 新表 like 舊表 該語句將完全拷貝舊表結構, 如果需要同步數據,只需執(zhí)行 insert…

    2024年01月16日
    瀏覽(24)
  • vue跳轉頁面的幾種常用方法

    目錄 vue跳轉不同頁面的方法 1.router-link跳轉 2.this.$router.push() 3.a標簽可以跳轉外部鏈接,不能路由跳轉 vue三種不同方式實現跳轉頁面 Vue:router-link this.$router.push(\\\"/\\\") this.$router.go(1) 代碼示例: !-- 直接跳轉 -- router-link to=\\\'/testC\\\' ?button點擊跳轉2/button /router-link ? !-- 帶參數跳轉

    2024年02月11日
    瀏覽(22)
  • Jmeter —— 常用的幾種斷言方法(基本用法)

    Jmeter —— 常用的幾種斷言方法(基本用法)

    在使用JMeter進行性能測試或者接口自動化測試工作中,經常會用到的一個功能,就是斷言,斷言相當于檢查點,它是用來判斷系統(tǒng)返回的響應結果是否正確,以此幫我們判斷測試是否通過,本文 主要介紹幾種常用的斷言:響應斷言、JSON斷言、BeanShell 斷言 1. 響應斷言是最常用

    2024年02月08日
    瀏覽(18)
  • java發(fā)送http請求的幾種方式,調用第三方接口的方法:HttpUtil、HttpURLConnection等

    參考:https://blog.csdn.net/yubin1285570923/article/details/126225347 put請求 post帶請求頭 get、delete類似… 使用JDK原生提供的net,無需其他jar包,代碼如下: 需要用到commons-httpclient-3.1.jar,maven依賴如下: 看一下我實際應用的例子 需要用到httpclient-4.5.6.jar,maven依賴如下: RestTemplate 是由

    2024年01月18日
    瀏覽(34)
  • Python進程間通信常用的幾種方式

    1. 隊列(Queue) 多個進程使用隊列進行數據交換。進程通過隊列發(fā)送和接收對象。 隊列是一個可以存儲任意類型數據的數據結構,而且支持多線程操作,因此在Python的多進程編程中,可以利用隊列來實現進程間通信。 下面是一個簡單的利用隊列實現進程間通信的示例代碼: 在

    2024年03月26日
    瀏覽(30)
  • c語言-階乘求和的幾種方法

    c語言-階乘求和的幾種方法

    階乘求和的幾種方法 目錄 一、階乘定義 二、階乘求和 1.兩層for循環(huán)嵌套使用 2.一層for循環(huán)直接實現 3.函數的遞歸調用來求階乘 總結 任何大于等于1 的自然數n 階乘表示方法: n!=n*(n-1)*(n-2)······3*2*1 代碼如下(示例): 重點: 每一次都得讓ret重置為1的原因: 每一個數字

    2024年02月07日
    瀏覽(16)
  • C語言的幾種缺陷及其規(guī)避方法

    一、C語言的幾種缺陷 C語言作為一種老牌編程語言,在其誕生時代的背景下是十分先進的,為編程領域的發(fā)展做出了重要貢獻。但是,隨著計算機體系結構、軟硬件環(huán)境的不斷演進,C語言所存在的一些缺點也逐漸凸顯出來。以下是C語言的一些缺陷: 容易出現指針錯誤:C語言

    2024年02月09日
    瀏覽(18)
  • C語言中判斷素數的幾種方法

    C語言中判斷素數的幾種方法

    作為C的初學者們希望大家看看這幾種判斷素數的方法 既然進來了就看完把 題目要求: 判斷n是否為素數。 首先我們講一下素數的判定:素數就是只能被1或者本身整除的數,這就延伸出了幾種不同的判定方法。 方法一:因為判斷素數相當于就是判斷這個數能不能整除2-這個數

    2024年02月11日
    瀏覽(16)
  • Jenkins的幾種安裝方式以及郵件配置

    Jenkins的幾種安裝方式以及郵件配置

    目錄 Jenkins介紹 Jenkins下載、安裝 一、通過war包安裝 二、通過docker安裝 jenkins 容器中添加 git, maven 等組件 jenkins 容器中的公鑰私鑰 在 jenkins 容器中調用 docker 簡單的方式啟動 Docker server REST API 一個 jenkins 示例 三、通過Homebrew安裝 訪問Jenkins、Jenkins配置 Jenkins配置郵件發(fā)送 Jen

    2024年02月16日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包