'''
纯文本发送
构造邮件内容的MIMEText类有三个参数,第一个参数为文本内容,第二个参数‘plain’设置文本格式,第三个参数设置编码格式
'''
## 导入模块
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
mail_host = "smtp.qq.com" #SMTP服务器地址
mail_sender = "****@163.com" #账号
mail_passwd = "****" #密码/授权码
## 构造邮件内容
msg = MIMEText("这里是邮件正文内容,只是测试一下",'plain','utf-8')
msg["Subject"] = "这里是邮件主题"
msg["From"] = mail_sender #发送人
msg["To"] = "***@***.com" #接收人
## 发送邮件
s = smtplib.SMTP() #实例化对象
s.connect(mail_host, 25) #连接163邮箱服务器,端口号为25
s.login(mail_sender, mail_passwd) #登录邮箱
s.sendmail(mail_sender, ["接收人@qq.com","接收人@qq.com"], msg.as_string())
s.quit()
'''
带图片发送
'''
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
from email.mime.image import MIMEImage
mail_host = "smtp.qq.com" #SMTP服务器地址
mail_sender = "***@163.com" #账号
mail_passwd = "****" #密码
msg = MIMEMultipart('related')
msg["Subject"] = "这里是邮件主题"
msg["From"] = mail_sender #发送人
msg["To"] = "songzp@***.com" #接收人
#html格式的邮件正文
content = '''
<body>
<p>测试Python发送带图片的邮件...</p>
<p>图片如下:</p>
<p><img src="cid:testimage" alt="testimage"></p>
</body>
'''
msg.attach(MIMEText(content,'html','utf-8'))
#读取图片
fp = open('京A~88888.png', 'rb') #打开文件
msgImage = MIMEImage(fp.read()) #读入 msgImage 中
fp.close() #关闭文件
# 定义图片 ID,在 HTML 文本中引用
msgImage.add_header('Content-ID', 'testimage')
msg.attach(msgImage)
## 发送邮件
s = smtplib.SMTP() #实例化对象
s.connect(mail_host, 25) #连接163邮箱服务器,端口号为25
s.login(mail_sender, mail_passwd) #登录邮箱
s.sendmail(mail_sender, ["接收人@qq.com","可以有多个"], msg.as_string())
s.quit()
'''
表格发送
'''
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
from email.mime.image import MIMEImage
# mail_host = "smtp.qq.com" #SMTP服务器地址
mail_host = "smtp.163.com" #SMTP服务器地址
mail_sender = "***@163.com" #账号
mail_passwd = "****" #密码/授权码
msg = MIMEMultipart('related')
msg["Subject"] = "带有表格的邮件"
msg["From"] = mail_sender #发送人
msg["To"] = "songzp@***.com" #接收人
#html格式的邮件正文
content = '''
<html>
<body>
<p><strong>这是加粗字体,可以是一个标题(您的财务清单)</strong></p>
<p>下面是一个表格,表格格式可以随意设置</p>
<table width="500" bordercolor="black" border="1" cellspacing="0">
<tr>
<td><strong>物品</strong></td>
<td><strong>元</strong></td>
<td><strong>日期</strong></td>
</tr>
<tr>
<td>口罩</td>
<td>10</td>
<td>2019-01-01</td>
</tr>
<tr>
<td>眉笔</td>
<td>20</td>
<td>2019-01-02</td>
</tr>
<tr>
<td>蔬菜</td>
<td>30</td>
<td>2019-01-03</td>
</tr>
</table>
</body>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
td{
text-align: center;
}
</style>
</html>
'''
msg.attach(MIMEText(content,'html','utf-8'))
## 发送邮件
s = smtplib.SMTP() #实例化对象
s.connect(mail_host, 25) #连接163邮箱服务器,端口号为25
s.login(mail_sender, mail_passwd) #登录邮箱
s.sendmail(mail_sender, ["接收人@qq.com"], msg.as_string())
s.quit()
'''
携带附件发送邮件
'''
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
from email.mime.application import MIMEApplication
mail_host = "smtp.163.com" #SMTP服务器地址
mail_sender = "***@163.com" #账号
mail_passwd = "****" #密码/授权码
msg = MIMEMultipart()
msg["Subject"] = "带有附件的邮件"
msg["From"] = mail_sender #发送人
msg["To"] = "***.com" #接收人
# 邮件正文
content = '''
这是一封带有附件的邮件...
有两个附件
'''
msg.attach(MIMEText(content,'plain','utf-8'))
xlslFile = '项目排期.xlsx'
xlslApart = MIMEApplication(open(xlslFile, 'rb').read())
xlslApart.add_header('Content-Disposition', 'attachment', filename=xlslFile)
msg.attach(xlslApart)
pdfFile = 'student.pdf'
pdfApart = MIMEApplication(open(pdfFile, 'rb').read())
pdfApart.add_header('Content-Disposition', 'attachment', filename=pdfFile)
msg.attach(pdfApart)
## 发送邮件
s = smtplib.SMTP() #实例化对象
s.connect(mail_host, 25) #连接163邮箱服务器,端口号为25
s.login(mail_sender, mail_passwd) #登录邮箱
s.sendmail(mail_sender, ["接受邮件@qq.com","接受邮件@163.com"], msg.as_string())
s.quit()