首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python如何使用邮件发送附件

Python可以使用smtplib和email库来发送带附件的邮件。下面是一个示例代码:

代码语言:txt
复制
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

def send_email_with_attachment(sender_email, sender_password, receiver_email, subject, body, attachment_path):
    # 创建邮件对象
    message = MIMEMultipart()
    message["From"] = sender_email
    message["To"] = receiver_email
    message["Subject"] = subject

    # 添加正文
    message.attach(MIMEText(body, "plain"))

    # 添加附件
    with open(attachment_path, "rb") as attachment:
        part = MIMEBase("application", "octet-stream")
        part.set_payload(attachment.read())
        encoders.encode_base64(part)
        part.add_header("Content-Disposition", f"attachment; filename= {attachment_path}")
        message.attach(part)

    # 发送邮件
    with smtplib.SMTP("smtp.example.com", 587) as server:
        server.starttls()
        server.login(sender_email, sender_password)
        server.send_message(message)

# 使用示例
sender_email = "your_email@example.com"
sender_password = "your_password"
receiver_email = "recipient@example.com"
subject = "邮件主题"
body = "邮件正文"
attachment_path = "path_to_attachment_file"

send_email_with_attachment(sender_email, sender_password, receiver_email, subject, body, attachment_path)

在上面的代码中,需要替换以下变量:

  • sender_email:发件人邮箱地址
  • sender_password:发件人邮箱密码
  • receiver_email:收件人邮箱地址
  • subject:邮件主题
  • body:邮件正文
  • attachment_path:附件文件路径

这段代码使用SMTP协议发送邮件,需要替换smtp.example.com为你的邮件服务器的地址和端口号。请确保你的发件人邮箱开启了SMTP服务。

推荐的腾讯云相关产品是腾讯企业邮,它提供了稳定可靠的企业级邮件服务。你可以在腾讯云官网上找到更多关于腾讯企业邮的信息和产品介绍:腾讯企业邮

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java 发送邮件添加附件_java发送邮件 发送附件邮件详解

javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; /** * 发送附件邮件...则创建一个密码验证器 authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); } // 根据邮件发送的属性和密码验证器构造一个发送邮件的...(mailInfo.getFromAddress()); // 设置邮件消息的发送者 mailMessage.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 Address...内容 html.setContent(mailInfo.getContent(), “text/html; charset=GBK”); mainPart.addBodyPart(html); // 为邮件添加附件...= null && attachFileNames.length > 0) { // 存放邮件附件的MimeBodyPart MimeBodyPart attachment = null; File

2.2K20

python3使用smtplib发送邮件,带xlsx附件

一、概述 最近在做一个统计报表,需要发送邮件,并带附件的。...在之前的文章中 https://www.cnblogs.com/xiao987334176/p/10022026.html 已经实现了发送邮件,但是没有实现发送附件功能。...# 系统账户         self.sys_pwd = '123456'  # 系统账户密码     def send(self,file_list):         """         发送邮件...    print(ret,type(ret)) 注意:附件是和python文件在同一目录,请根据实际情况,修改附件的路径。...阿里云服务器,从即日起,不再提供25端口邮件服务 。必须使用SSL加密465端口发信! 所以上面的代码中,改成了SMTP_SSL,并使用了465端口。 执行脚本,查看邮件,效果如下: ?

3.4K32

python SMTP自动发送文本,HTML,附件邮件

邮件前的准备工作 使用SMTP发送邮件,需要知道的东西以及准备的东西 1.发件人的邮件 比如:sender@163.com,sender@126.com,sender@qq.com,sender@...POP3/SMTP/IMAP地址和端口) 4.发送邮件流程 4.1导入所需要的包,均为python自带的包 import smtplib from email.header import Header...# 向该发送服务器发送SMTP 'ehlo' 命令 server.ehlo() server.starttls() 7.登录邮箱 # 使用邮箱地址和密码进行登录邮箱,密码为授权密码 server.login...), msg.as_string()) 9.关闭服务器 # 关闭邮件服务器 server.quit() 10 如果需要发送附件,那就需要读取本地附件,然后进行发送 from email import...# 发送邮件模块 增加附件 def sendMailAttachment(self): # 创建MIMEMultipart类对象进行邮件发送和接收的配置 msg

1.3K10

python利用smtp来发送邮件(带附件

V站笔记 运行环境:python2.7,python3.x的话,把代码中的中文的字符前的u去掉就好,这是2与3基本的区别 # -*- coding: utf-8 -*- import smtplib...,*****是发送来源的邮箱,xxx是发送邮件时候的标题, To = " ###"  # 接受邮件的邮箱 file_name = "***"   # 附件名(带路径) server = smtplib.SMTP_SSL...## 设置附件头 basename = os.path.basename(file_name) file_msg.add_header('Content-Disposition', 'attachment...', filename=basename)  # 修改邮件头 main_msg.attach(file_msg) # 设置根容器属性 subject = u" 邮件标题" if not isinstance...') # 用smtp发送邮件 try:     server.sendmail(From, To, fullText) finally:     server.quit() 温馨提示 如果想要做个定时的话

1.2K40

python利用smtp来发送邮件(带附件

运行环境:python2.7,python3.x的话,把代码中的中文的字符前的u去掉就好,这是2与3基本的区别 # -*- coding: utf-8 -*- import smtplib import...,*****是发送来源的邮箱,xxx是发送邮件时候的标题, To = " ###"  # 接受邮件的邮箱 file_name = "***"   # 附件名(带路径) server = smtplib.SMTP_SSL...## 设置附件头 basename = os.path.basename(file_name) file_msg.add_header('Content-Disposition', 'attachment...', filename=basename)  # 修改邮件头 main_msg.attach(file_msg) # 设置根容器属性 subject = u" 邮件标题" if not isinstance...') # 用smtp发送邮件 try:     server.sendmail(From, To, fullText) finally:     server.quit() 温馨提示 如果想要做个定时的话

90140

Zabbix发送附件邮件

Zabbix告警由于内容主体有诸多限制,很难传达所有的告警信息,可以通过添加附件的方式将详细信息发送给接收人,比如说要发送的文件存在apache文件服务器中,这个文件内容每隔一段时间会变动,我们可以将文件链接放在消息主体中...,当shell脚本接收到消息主体参数时,解析出其中的链接,并将内容下载到缓存文件中,然后将该文件以附件的方式随邮件一起发送出去。...发送完成后将缓存文件删掉。...-f1` #拿到文件名 fileDir=${http##*/} #补全文件路径 fileDir="/usr/lib/zabbix/alertscripts/"${fileDir} #由于文件存在,每次发送前都要重新下载一遍...message-charset=utf-8 -xu xxx@xxx.com -xp xxxx -m "$body" -a $fileDir #删除缓存文件 rm $fileDir 当触发器被触发时,收到带附件邮件

62030
领券