用python发送邮件(带html格式的邮件、附件)

1.导入各种库
import smtplib
from smtplib import SMTP_SSL #是用来加密邮件内容的防止中间被人截获
from email.mime.text import MIMEText #用来构造邮件的正文
from email.mime.multipart import MIMEMultipart #这是邮件的主体
from email.header import Header #邮件的头部,包括邮件的标题,收件人等
from email.mime.application import MIMEApplication #专门用来添加附件的
2.获取服务器、收件人、发件人信息
host_server = ‘smtp.163.com’#sina邮箱smtp服务器
pwd = “xxxxx” #pwd为邮箱的密码
sender_mail = ‘xxxxx@163.com’ #发件人的邮箱
receiver_mail =‘xxxxx@163.com’ #收件人的邮箱
#发送有html格式的文件
下面的语句变换了格式,在这里粘帖一张图片
mail_content = “你好,

这是使用python登录163邮箱发送HTML格式邮件的测试:

<a href=https://cn.bing.com/’>Python


#发送没有格式的文字
msg.attach(MIMEText(mail_content,‘plain’,‘utf-8’)) #邮件正文内容,以无格式的方式添加到整个邮件主体中
#发送带有附件的邮件
attachment = MIMEApplication(open(r"C:\Users\Polyxena\Desktop\untitled1\长恨歌替换.docx",‘rb’).read())
#重命名文件
attachment.add_header(‘Content-Disposition’,‘attachment’,filename=‘长恨歌.docx’)
msg.attach(attachment)
#邮件的正文内容
mail_title = ‘python办公自动化的邮件’ #邮件标题

3.准备发送的主体、内容
msg = MIMEMultipart() #邮件主体
msg[“Subject”] = Header(mail_title,‘utf-8’)
msg[“From”] = sender_mail
msg[“To”] = receiver_mail #固定格式,没有为什么
msg.attach(MIMEText(mail_content,‘html’,‘utf-8’)) #邮件正文内容,以html格式的方式添加到整个邮件主体中

4.连接服务器,开始发送
try:

smtp = SMTP_SSL(host_server) #ssl登录,连接到邮件的服务器
#关闭smtp的debug是0,否则是1
smtp.set_debuglevel(0)
#和服务器打个招呼我们要连接,最好加上
smtp.ehlo(host_server)  
smtp.login(sender_mail,pwd)
smtp.sendmail(sender_mail,receiver_mail,msg.as_string()) #发件人,收件人,邮件主体
smtp.quit()
print('邮件发送成功')

except smtplib.SMTPException:

print("无法发送邮件")
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值