发文本邮件 By smtplib &email

主要用于自己学习过程中的理解吧,有错误理解处会虚心改正 (>‿◠)✌

发文本邮件 By smtplib &email

smtplib简单格式

 import smtplib
# 发信方的信息:发信邮箱,QQ邮箱授权码
from_addr = '本人@qq.com'
password = '授权码'

# 收信方邮箱
to_addr = '他人@qq.com'

# 发信服务器
smtp_server = 'smtp.qq.com'  # 就是 host

server = smtplib.SMTP()
server.connect(host, port)#host='smtp.qq.com'  port端口 qq邮箱为465
server.login(from_addr, password) 
server.sendmail(from_addr, to_addr, msg.as_string()) 
server.quit()

email简单格式

from email.mime.text import MIMEText   #email包

msg = MIMEText('所想写的文本','plain','utf-8') 
# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
# MIMEText(msg, type, chartset)
# msg:文本内容,可自定义
# type:文本类型,默认为plain(纯文本)
# chartset:文本编码,中文为“utf-8”

例子smtplib &email 简单组合

# smtplib 用于邮件的发信动作
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容


# 发信方的信息:发信邮箱,QQ邮箱授权码
from_addr = '88888888@qq.com'
password = 'abcdefghijkl'

# 收信方邮箱
to_addr = '000000000@qq.com'

# 发信服务器
smtp_server = 'smtp.qq.com'

# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg = MIMEText('send by Python','plain','utf-8')

# 开启发信服务,这里使用的是加密传输  ↓  SSL格式,非加密用端口port=25 内容会被开放 对所有人可见,不安全
server =smtplib.SMTP_SSL(host='smtp.qq.com')  #因为Python 3.7修改了ssl.py,导致smtplib.SMTP_SSL也连带产生了问题,需要加 host
server.connect( smtp_server,port=465)   #smtp_server不能少, 否则计算机积极拒绝,无法连接。
#其实host=变量smtp_server='smtp.qq.com'

# 登录发信邮箱
server.login(from_addr, password)

# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
#from_addr:邮件发送者地址。 
#to_addr:邮件收件人地址。
#msg.as_string():为一个字符串类型 

# 关闭服务器
server.quit()




添加邮件头(header)简单格式

from email.header import Header

msg['From'] = Header('xxx')
msg['To'] = Header('xxx')
msg['Subject'] = Header('xxx')

丰富正文内容

因为邮件正文总是要换行,所以为了方便就用 → 三引号’’’ ← 吧!
建议先设置一个变量text用来放正文内容

text = '''亲爱的,你好!
​    我是xxxxxx,能遇见你很开心。
​    希望学习Python对你不是一件困难的事情!

人生苦短,我用Python
'''
msg = MIMEText(text,'plain','utf-8')

出于代码隐私保护

出于保护隐私的目的,我们可以把收发件人,和授权码这些信息用 input() 变成需要输入的模式。

# 发信方的信息:发信邮箱,QQ邮箱授权码)
from_addr = input('请输入登录邮箱:')
password = input('请输入邮箱授权码:')

# 收信方邮箱
to_addr = input('请输入收件邮箱:')

群发邮件

1.设置一个列表形式的变量
Header组合join()

to_addrs = ['AAAAA@qq.com','BBBBBB@qq.com']
msg['To'] = Header(",".join(to_addrs))   # Header里只能添加str和字节
                                         #  列表  需用到    '间隔符'.join(列表)   方法
                                         # 把列表元素通过间隔符连接成一个整体的 字符串。==

2.用while循环

to_addrs = []
while True:
    a=input('请输入收件人邮箱:')
    #输入收件人邮箱
    to_addrs.append(a)
    #写入列表
    b=input('是否继续输入,n退出,任意键继续:')
    #询问是否继续输入
    if b == 'n':
        break

print(to_addrs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值