溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

第18課 python 發(fā)送郵件

發(fā)布時間:2020-08-01 23:15:24 來源:網(wǎng)絡 閱讀:442 作者:samly71 欄目:編程語言
到昨天課程已經(jīng)完結。但是你是不是你還是覺得沒有成就感。。。。答案肯定的。

    作為一名郵件管理員,也是一件有意思的事情。。。。。
    我觸發(fā)學習Py的,主要也是用于群發(fā)郵件,解決市場管理部總是找我群發(fā)郵件。。。。。

    那時候我使用的是shell......但是還是要要入系統(tǒng)搞,能不能我給工具,你們自己發(fā)送。。。。。。。。。。

    所以還是很苦逼,我們 搜索python 發(fā)送郵件,你會發(fā)現(xiàn)2個模塊smtplib,email

    1. smtplib是用來發(fā)送郵件用的;( 跟服務器連接,你才能有機會發(fā)送郵件吧)
    2. email是用來構建郵件內(nèi)容的。(你發(fā)送的內(nèi)容至少

    兩個都是Python內(nèi)置模塊。(這里信息說明,python裝完就有,自帶入網(wǎng),需要pip install xxx)

    ######################開始之前,我們思考一下發(fā)送郵件過程:
    準備好郵件內(nèi)容 -----------連接服務器 -------------點擊發(fā)送。  (3個步驟)

    ######################開始寫之前,我們要思考一個問題,如何學習python 其他大神的 模塊...用什么學習什么
    百度》smtplib python 自己找文檔資料吧。。。以后都是這樣的路線,英文,英文,英文。。(不搞IT,可以不用堅持了。。。)

    ############################################開始smtplib模塊

import smtplib
server = smtplib.SMTP()
server.connect(host, port)
server.login(username, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
說明:實例化;連接服務器;登陸賬號,密碼;發(fā)送郵件給某某。。。
是不是很簡單。。。
msg.as_string()是一個字符串類型:as_string()是將發(fā)送的信息msg變?yōu)樽址愋?br/>msg的位置你寫 '你好,世界' 也可以,就是說要字符串....

PS:
郵件端口比較復雜,自己注意的我這里總結一下,讓你不用白行一趟

--------------------發(fā)送,投遞的
SMTP : 25
SSL SMTP : 465 smtplib.SMTP_SSL() 適當替換
TLS SMTP : 587 starttls() 需要在 smtplib.SMTP_SSL() 或smtplib.SMTP() 后增加開始TLS

---------------------------------接收,驗證的
POP3 : 110
SSL POP3 : 995

IMAP: 143
SSL IMAP : 993

悄悄共享給你。。。。無多少人知道的。。。SSL,TLS 哈哈。。。

#####下面我復制人家的例子。。。
import smtplib

smtplib 用于郵件的發(fā)信動作

from email.mime.text import MIMEText

email 用于構建郵件內(nèi)容

from email.header import Header

用于構建郵件頭

import csv

引用csv模塊,用于讀取郵箱信息

發(fā)信方的信息:發(fā)信郵箱,QQ郵箱授權碼

方便起見,你也可以直接賦值

from_addr = input('請輸入登錄郵箱:')
password = input('請輸入郵箱授權碼:')

發(fā)信服務器

smtp_server = 'smtp.qq.com'

郵件內(nèi)容

text='''
人生苦短,我用Python
'''

待寫入csv文件的收件人數(shù)據(jù):人名+郵箱

記得替換成你要發(fā)送的名字和郵箱

data = [['y ', '123@qq.com'],['x', 4533@qq.com']]

寫入收件人數(shù)據(jù)

with open('to_addrs.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in data:
writer.writerow(row)

讀取收件人數(shù)據(jù),并啟動寫信和發(fā)信流程

with open('to_addrs.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
to_addrs=row[1]
msg = MIMEText(text,'plain','utf-8')
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addrs)
msg['Subject'] = Header('python test')
server = smtplib.SMTP_SSL()
server.connect(smtp_server,465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addrs, msg.as_string())

關閉服務器

server.quit()

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI