天天看点

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