python邮件发送


'''
纯文本发送
构造邮件内容的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()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值