python 发送邮件_python 发送邮件的四种方法汇总

这里针对smtplib做了一系列封装,可以完成以下四种场景:

发送纯文本的邮件

发送html页面的邮件

发送带附件文件的邮件

发送能展示图片的邮件

以上四种场景,已经做好了二次封装,经测试OK,使用时直接传入对应参数即可,直接上代码

import smtplib

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.mime.application import MIMEApplication

from email.mime.multipart import MIMEMultipart

class SendEMail(object):

"""封装发送邮件类"""

def __init__(self, host, port, msg_from, pwd):

self.msg_from = msg_from

self.password = pwd

# 邮箱服务器地址和端口

self.smtp_s = smtplib.SMTP_SSL(host=host, port=port)

# 发送方邮箱账号和授权码

self.smtp_s.login(user=msg_from, password=pwd)

def send_text(self, to_user, content, subject, content_type='plain'):

"""

发送文本邮件

:param to_user: 对方邮箱

:param content: 邮件正文

:param subject: 邮件主题

:param content_type: 内容格式:'plain' or 'html'

:return:

"""

msg = MIMEText(content, _subtype=content_type, _charset="utf8")

msg["From"] = self.msg_from

msg["To"] = to_user

msg["subject"] = subject

self.smtp_s.send_message(msg, from_addr=self.msg_from, to_addrs=to_user)

def send_file(self, to_user, content, subject, reports_path, filename, content_type='plain'):

"""

发送带文件的邮件

:param to_user: 对方邮箱

:param content: 邮件正文

:param subject: 邮件主题

:param reports_path: 文件路径

:param filename: 邮件中显示的文件名称

:param content_type: 内容格式

"""

file_content = open(reports_path, "rb").read()

msg = MIMEMultipart()

text_msg = MIMEText(content, _subtype=content_type, _charset="utf8")

msg.attach(text_msg)

file_msg = MIMEApplication(file_content)

file_msg.add_header('content-disposition', 'attachment', filename=filename)

msg.attach(file_msg)

msg["From"] = self.msg_from

msg["To"] = to_user

msg["subject"] = subject

self.smtp_s.send_message(msg, from_addr=self.msg_from, to_addrs=to_user)

def send_img(self, to_user, subject, content, filename, content_type='html'):

'''

发送带图片的邮件

:param to_user: 对方邮箱

:param subject: 邮件主题

:param content: 邮件正文

:param filename: 图片路径

:param content_type: 内容格式

'''

subject = subject

msg = MIMEMultipart('related')

# Html正文必须包含imageid

msg.attach(content)

msg['Subject'] = subject

msg['From'] = self.msg_from

msg['To'] = to_user

with open(filename, "rb") as file:

img_data = file.read()

img = MIMEImage(img_data)

img.add_header('Content-ID', 'imageid')

msg.attach(img)

self.smtp_s.sendmail(self.msg_from, to_user, msg.as_string())

以上就是python 发送邮件的四种方法汇总的详细内容,更多关于python 发送邮件的资料请关注脚本之家其它相关文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值