当然,我可以为你提供一个简单的Python类,用于封装使用`smtplib`和`email`库发送邮件的功能。这个类将包括设置SMTP服务器、发件人、收件人、邮件主题和正文,以及发送邮件的方法。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
class EmailSender:
def __init__(self, smtp_host, smtp_port, smtp_user, smtp_password, from_addr):
"""
初始化EmailSender类
:param smtp_host: SMTP服务器地址
:param smtp_port: SMTP服务器端口
:param smtp_user: SMTP用户名(通常是邮箱地址)
:param smtp_password: SMTP密码
:param from_addr: 发件人邮箱地址
"""
self.smtp_host = smtp_host
self.smtp_port = smtp_port
self.smtp_user = smtp_user
self.smtp_password = smtp_password
self.from_addr = from_addr
def send_email(self, to_addrs, subject, body, html=False):
"""
发送邮件
:param to_addrs: 收件人邮箱地址列表
:param subject: 邮件主题
:param body: 邮件正文
:param html: 是否为HTML邮件,默认为False
"""
msg = MIMEMultipart()
msg['From'] = self.from_addr
msg['To'] = ','.join(to_addrs)
msg['Subject'] = Header(subject, 'utf-8')
if html:
msg.attach(MIMEText(body, 'html', 'utf-8'))
else:
msg.attach(MIMEText(body, 'plain', 'utf-8'))
try:
server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port)
server.login(self.smtp_user, self.smtp_password)
server.sendmail(self.from_addr, to_addrs, msg.as_string())
server.quit()
print("邮件发送成功!")
except Exception as e:
print(f"邮件发送失败:{e}")
# 使用示例
if __name__ == "__main__":
sender = EmailSender('smtp.example.com', 465, 'your_email@example.com', 'your_password', 'from_email@example.com')
sender.send_email(['recipient1@example.com', 'recipient2@example.com'], 'Hello Email', 'This is the body of the email.')
**注意**:请替换`smtp.example.com`、`465`、`your_email@example.com`、`your_password`和`from_email@example.com`为你的SMTP服务器信息、端口号、SMTP用户名、SMTP密码和发件人邮箱地址。同时,确保SMTP服务器允许使用你的账号发送邮件,并且可能需要你开启SMTP服务的访问权限。
这个类`EmailSender`封装了发送邮件的基本逻辑,包括设置邮件内容、连接SMTP服务器、发送邮件和关闭连接。你可以根据需要调整它,比如添加附件、修改邮件格式等。