# coding:utf8 import smtplib from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText from email.mime.image import MIMEImage # 导入图片附件用的库 con = smtplib.SMTP_SSL('smtp.163.com', 465) # 连接邮箱服务器 con.login('123456@163.com', '邮件登陆授权码/密码') # 登陆邮箱账号 msg = MIMEMultipart() # 准备数据 sub = Header('重新测试一下图片,文本,附件一起发送', 'utf8').encode() # 填写邮件标题和编码 msg['Subject'] = sub msg['From'] = '123456@163.com <123456@163.com>' # 设置邮件头部发件人信息 msg['To'] = 'xxx@163.com;xxx@qq.com' # 设置设置一个头部收件人信息 image_data2 = open('1.jpg', 'rb').read() # 以二进制的形式读取图片文件 content1 = open('1.txt','rb').read() # 以二进制的形式读取文件数据,并给到变量。除了图片附件以外,其它附件均只需要改变文件格式就行 # image1 = MIMEImage(这里给一个图片的二进制数据) image2 = MIMEImage(image_data2) # 把二进制图片数据变量给到MIMEImage()参数里面 file_txt = MIMEText(content1,'base64','utf8') # 把二进制文件数据变量给到MIMEIText()参数里面 file_txt["Content-Disposition"] = 'attachment; filename="1.txt"' # 设置附件名称以及附件格式,除了图片附件以外,其它附件均只需要 # 改变文件格式就行 msg.attach(file_txt) image2.add_header('Content-ID', '<meinvwww>') # 图片需要加载到邮件内容,先声明一个图片id ,meinvwww,做这一步之前,一样要和图片附件一样 msg.attach(image2) # 把邮件头部和邮件内容关联在一起,图片正文内容 # 先读取图片文件的二进制数据流 htmltext = """ <h3>我是一个3号大小字体的邮件正文标题标题</h3> <p>我是邮件内容,在html里面一对p标签就是一段内容。</p> <p>比如说现在这段文字,就是用的第2对p标签,所以我是在第2段。</p> <img src='cid:meinvwww'> <a href="http://www.heisiwu.com" target="_blank">点击我可以跳转到黑丝屋图片网站</a> """ # 编辑html内容。 把image2.add_header中声明的Content-ID meinvwww作为cid:的值。 html = MIMEText(htmltext, 'html', 'utf8') msg.attach(html) # 把邮件头部和邮件内容关联在一起,正文html内容 to2 = ['xxxx@139.com', 'xxxx@qq.com'] # 收件人账号 con.sendmail('123456@163.com', to2, msg.as_string()) # 设置发件人账号和收件人账号 con.quit() # 断开邮箱服务器连接,退出邮件服务器。