用python发送邮件(可以带附件)

本文详细介绍了如何使用Python的smtplib和email.mime模块通过SMTP协议发送邮件,包括登录SMTP服务器、构造邮件内容、添加附件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,我们要使用SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)

使用到python的smtplib模块(SMTP, login, sendmail, quit)、email.mime模块(MIMEMultipart,MIMEBase等)

假设我们使用126邮箱的smtp地址:smtp.126.com

from email.mime import multipart
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import smtplib
import os
from email.mime.image import MIMEImage
def send_mail(fromaddr,psw,toaddr,text,subject,file):
    msg = MIMEMultipart()
    #以下是SMTP的协议规定字段(不是全都是必选项)
    msg['From'] = fromaddr
    msg['To'] = toaddr
    msg['Subject'] = subject
    msg.attach(MIMEText(text))
    part = MIMEBase('application','jpg')     #参考MIME手册自己设定
    part.set_payload(open(file,"rb").read()) 
    encoders.encode_base64(part)             #用base64编码
    part.add_header('Content-Disposition', 'attachment;filename=p.jpg')   #附件列表中显示的文件名
    msg.attach(part)                         #将文件附件添加到待发送的MIMEMultipart对象msg中
    server = smtplib.SMTP('smtp.126.com',25)
    server.login(fromaddr, psw)              #登陆到SMTP服务器
    server.sendmail(fromaddr,toaddr,msg.as_string())         #msg要调用as_string()转换成字节字符流才能发送
    server.quit()



今天先写到这了,太困,睡觉去,有不懂的可以问我



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值