用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
    评论
以下是一个示例代码,展示如何使用Python发送HTML格式的电子邮件: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage # 邮件发送者和接收者的信息 sender = 'sender@example.com' receiver = 'receiver@example.com' # 邮件主题 subject = 'HTML格式邮件' # 邮件正文内容 html = """ <html> <head></head> <body> <p>这是一封HTML格式邮件!</p> <p>以下是一张图片:</p> <img src="cid:image1"> </body> </html> """ # 创建包含HTML内容的MIMEText对象 msg = MIMEMultipart('related') msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver html_part = MIMEText(html, 'html') msg.attach(html_part) # 添加图片 with open('image.jpg', 'rb') as f: img = MIMEImage(f.read()) img.add_header('Content-ID', '<image1>') msg.attach(img) # 发送邮件 smtp_server = 'smtp.example.com' smtp_port = 587 smtp_username = 'username' smtp_password = 'password' server = smtplib.SMTP(smtp_server, smtp_port) server.ehlo() server.starttls() server.login(smtp_username, smtp_password) server.sendmail(sender, receiver, msg.as_string()) server.quit() ``` 在上述代码中,我们创建了一个 `MIMEMultipart` 对象,并使用 `MIMEText` 类将HTML内容添加为邮件正文。同时,我们还添加了一张图片,并使用 `MIMEImage` 类将其作为附件添加到邮件中,并在HTML中通过 `Content-ID` 引用该图片。最后,我们使用SMTP协议发送邮件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值