python发送邮件

直接上代码吧

#  倒入库,发送邮件基本的四个库
import  smtplib # 内置库,不需要pip
from email.mime.multipart import MIMEMultipart # 邮件的内容,邮件收件人,邮件的相关设置
from email.header import Header  # 专门构建邮件标题的,这样做,可以支持标题中文
from email.mime.text import MIMEText # 构建邮件头信息,包括发件人,接收人,标题等
from email.mime.image import MIMEImage # 发送图片附件用到的包

import datetime

第一步:连接邮箱服务器,登录邮箱

email_connect = smtplib.SMTP_SSL('smtp.qq.com', 465)  # 连接邮箱服务器,第一个参数为邮箱连接地址'smtp.邮箱名.com',第二个参数是端口号, 用QQ邮箱最稳妥,outlook微软的邮箱,不太会搞
email_connect.login('[email protected]','授权码或者密码') # 利用第一步创建的连接名,去连接对象.login(账号,密码)。相当于在邮箱的页面登录你自己的账号。 QQ的密码就是授权码,其他的邮箱不太清楚

第二步:准备数据

# 创建邮件对象:from email.mime.multipart import MIMEMultipart 邮件的内容,邮件收件人,邮件的相关设置,包括发件人,接收人,标题等
send_content = MIMEMultipart() # 真正发出去的东西,包括头部的标题内容,头部的内容。代码的角度就是调用了MIMEMultipart的类,可以随意使用里面的方法

# 设置邮件主题 from email.header import Header  专门构建邮件标题的,这样做,可以支持标题中文
# 调用send_content的方法 来构建邮件的头部的内容
send_content['Subject'] = Header('测试邮件 '+str(datetime.date.today())+,'utf-8').encode() # 邮件的标题内容
send_content['From'] = '测试邮件 ' # 设置邮件发送人
send_content['To'] = '[email protected]' # 设置邮件接受人,如果是很多人,那么就是'邮箱1:邮箱2;邮箱3;.......邮箱n'

# from email.mime.text import MIMEText # 构建邮件内容信息
# 普通文本:MIMEText(文字内容,文本类型,编码方式)
# 文本类型 - plain(普通文件), html(超链接),base64(二进制文件)

# ========================文本内容========================
# text = MIMEText('林瑞敏','plain','utf-8')
# send_content.attach(text) # 与文本的内容相连接,就构成整个邮件的发生页面,以及发送内容

# ========================html内容========================
content = """

我是正文的大标题

我是正文的副标题

我是邮件正文段落文字

点击跳转 """
# 在这个里面写html文字 html_text = MIMEText(content,'html','utf-8') send_content.attach(html_text) # ========================发送图片内容======================== # 发送图片内容,需要使用HTML内容来发送 #1.准备图片 image_data = open('本地的文件地址','rb').read() image = MIMEImage(image_data) image.add_header('Content-ID ','') content = """

这是一条发送图片的的邮件 """ html_text = MIMEText(content,'html','utf-8') send_content.attach(html_text) # ========================发送图片附件内容======================== # 图片附件内容,其实就是从本地读取图片,将图片内容转为二进制 image_data = open('文件的地址','rb').read() image = MIMEImage(image_data) image['Content-Disposition'] = 'attachment; filename ="名字内容"' # 设置附件名,注意名字不要用成中文 send_content.attach(image) # 添加到邮件内容当中去 ========================发送文件附件内容======================== # 准备附件 content1 = open('文件的地址','rb').read() file_content = MIMEText(content1,'base64','utf-8') # 必须写base64,这个是二进制的编码形式。 file_content['Content-Disposition'] = 'attachment; filename ="名字内容"' # 设置附件名,注意名字不要用成中文 send_content.attach(image) # 添加到邮件内容当中去

第三步:发送邮件

# 连接对象,sendmail
email_connect.sendmail('[email protected]','[email protected]',send_content.as_string()) # 发送人,收件人,以字符串的方法发送出去
email_connect.close() # 关闭邮箱

你可能感兴趣的:(python,服务器,ssl)