Python基础_06

Python基础_06

一、邮件发送

  • Python提供了两个工具库: smtplib 和 email
    email 构造邮件信息
    smtplib 负责邮件发送

    发送邮件:
    登录
    利用Python程序通过邮箱服务器地址链接到邮箱服务器,借助smtp协议 通过用户名和授权码进行身份识别登录
    邮件平台 发送邮件的服务器地址是??
    发送邮件服务器: smtp.qq.com 使用SSL加密 端口号465或587
    还有一个加密协议SSL【加密之前端口号25】
    新浪:smtp.sina.com
    163: smtp.163.com
    126: smtp.126.com
    登录认证
    邮箱用户名【发件人】
    用户授权码
    写邮件
    使用email库 构造邮件信息
    可以编写普通邮件、HTML网页数据、带附件
    发送
    smtplib 发送指令

import smtplib
# host是服务器域名后ip地址  port端口号
connect = smtplib.SMTP_SSL(host='smtp.qq.com', port=465)
# user 用户名  password 授权码
connect.login(user='邮箱', password='授权码')
# 导入写邮件需要的工具
from email.mime.multipart import MIMEMultipart  # 构造邮件
from email.mime.text import MIMEText  # 构造邮件内容

# 构造一个份邮件
email = MIMEMultipart()
# 邮件的头部信息:收件人  发送人  主题 使用键值对形式添加
email['From'] = ''  # 发件人
email['To'] = ''  # 收件人
email['Subject'] = ''  # 主题

# 书写正文
# _text 内容, _subtype='plain'  内容的类型  plain[纯文本]   html[发送的数据为网页内容]
text = MIMEText('欢迎大家来到Python', 'plain')
# 把正文添加到邮件里
email.attach(text)

# 发送
# from_addr 发件人, to_addrs 收件人, msg 信息 【msg may be a string】
connect.sendmail(from_addr='',
                 to_addrs='',
                 msg=email.as_string())
# 断开与服务器的连接
connect.close()

二、邮件发送带有附件

# 导入工具库
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication  # 构造附件

server = 'smtp.qq.com'  # 邮箱服务器地址
port = 465
sender = ''   # 发件人
reveivers = ''   # 收件人
code = ''   # 授权码

# 连接服务器 登录认证
connect = smtplib.SMTP_SSL(server, port)
connect.login(sender, code)

# 构造邮件
email = MIMEMultipart()
# 设置邮件头部
email['From'] = ''  # 发件人
email['To'] = ''  # 收件人名称用逗号隔开
email['Subject'] = ''  # 主题

# 正文
text = MIMEText('今天很好', 'plain')
# 添加到邮件上
email.attach(text)

# 附件
# _data 附件的数据
# r 读取数据 rb代表的读取字节数据【图片 音视频都是字节数据】
handle = open('', 'rb')  # 要发送的附件的地址
data = handle.read()  # 把文件中的数据读取出来
app = MIMEApplication(data)

app['Content-Disposition'] = 'attachment; filename="sendmail.py"'
email.attach(app)

app1 = MIMEApplication(open('', 'rb').read())   
# 设置附件的位置 及其 附件数据在邮箱的中显式的名称
# attachment 拼接的一部分
# filename 的值不允许包含中文
app1['Content-Disposition'] = 'attachment; filename=""'
# 把附件拼接到邮件上
email.attach(app1)

# 发送邮件
connect.sendmail(from_addr=sender, to_addrs=reveivers, msg=email.as_string())
# 断开连接
connect.close()

三、正文超链接邮件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

server = 'smtp.qq.com'  # 邮箱服务器地址
port = 465
sender = ''
reveivers = ''
code = ''   # 授权码

connect = smtplib.SMTP_SSL(server, port)
connect.login(sender, code)

email = MIMEMultipart()
email['From'] = sender
email['To'] = reveivers
email['Subject'] = '超文本文件'

# 正文
# 需要写THML标签
"""
双标签【对标签】
    <开始标签 属性名=属性值 属性名=属性值>内容</结束标签>
单标签
    <标签名称 属性名=属性值 属性名=属性值/>
"""
# _subtype='html'
text = MIMEText(_text='<a herf="https://www.baidu.com">百度一下</a>', _subtype='html')
# 把它拼在邮件上
email.attach(text)

# 发送邮件
connect.sendmail(from_addr=sender, to_addrs=reveivers, msg=email.as_string())
connect.close()

四、读取html文档发送邮件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

server = 'smtp.qq.com'  # 邮箱服务器地址
port = 465
sender = ''
reveivers = ''
code = ''   # 授权码

connect = smtplib.SMTP_SSL(server, port)
connect.login(sender, code)

email = MIMEMultipart()
email['From'] = sender
email['To'] = reveivers
email['Subject'] = '超文本文件'

content = open('', 'r', encoding='utf-8').read()  html文件地址
text = MIMEText(_text=content, _subtype='html')
email.attach(text)

# 发送邮件
connect.sendmail(from_addr=sender, to_addrs=reveivers, msg=email.as_string())
# 断开连接
connect.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值