天天看點

第18課 python 發送郵件smtplib 用于郵件的發信動作email 用于建構郵件内容用于建構郵件頭引用csv子產品,用于讀取郵箱資訊發信方的資訊:發信郵箱,QQ郵箱授權碼友善起見,你也可以直接指派發信伺服器郵件内容待寫入csv檔案的收件人資料:人名+郵箱記得替換成你要發送的名字和郵箱寫入收件人資料讀取收件人資料,并啟動寫信和發信流程關閉伺服器

import smtplib

server = smtplib.SMTP()

server.connect(host, port)

server.login(username, password)

server.sendmail(from_addr, to_addr, msg.as_string())

server.quit()

說明:執行個體化;連接配接伺服器;登陸賬号,密碼;發送郵件給某某。。。

是不是很簡單。。。

msg.as_string()是一個字元串類型:as_string()是将發送的資訊msg變為字元串類型

msg的位置你寫 '你好,世界' 也可以,就是說要字元串....

PS:

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

--------------------發送,投遞的

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 哈哈。。。

#####下面我複制人家的例子。。。

from email.mime.text import MIMEText

from email.header import Header

import csv

from_addr = input('請輸入登入郵箱:')

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

smtp_server = 'smtp.qq.com'

text='''

人生苦短,我用Python

'''

data = [['y ', '[email protected]'],['x', [email protected]']]

with open('to_addrs.csv', 'w', newline='') as f:

writer = csv.writer(f)

for row in data:

writer.writerow(row)

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())