当前位置:实例文章 » 其他实例» [文章]简单邮件发送功能

简单邮件发送功能

发布人:shili8 发布时间:2025-03-04 22:30 阅读次数:0

**简单邮件发送功能**

在现代应用中,邮件发送功能是必不可少的一部分。以下是一份简单的邮件发送功能实现。

### **功能描述**

本功能支持以下操作:

* 发送普通邮件* 发送带附件的邮件* 支持多个收件人### **技术选型**

本功能使用 Python3.x 和 smtplib 库来实现。smtplib 是一个用于发送电子邮件的库。

### **代码实现**

#### **配置文件**

首先,我们需要创建一个配置文件来存储我们的 SMTP 账户信息。

# config.pySMTP_SERVER = 'smtp.gmail.com' # SMTP服务器地址SMTP_PORT =587 # SMTP 端口号FROM_EMAIL = 'your_email@gmail.com' # 发件人邮箱PASSWORD = 'your_password' # 发件人密码


#### **邮件发送类**

接下来,我们创建一个邮件发送类来封装我们的邮件发送逻辑。

# mail_sender.pyimport smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.base import MIMEBasefrom email.utils import COMMASPACE, formatdatefrom config import SMTP_SERVER, SMTP_PORT, FROM_EMAIL, PASSWORDclass MailSender:
 def __init__(self):
 self.smtp_server = SMTP_SERVER self.smtp_port = SMTP_PORT self.from_email = FROM_EMAIL self.password = PASSWORD def send_mail(self, to_emails, subject, body, attachments=None):
 msg = MIMEMultipart()
 msg['From'] = self.from_email msg['To'] = COMMASPACE.join(to_emails)
 msg['Date'] = formatdate(localtime=True)
 msg['Subject'] = subject msg.attach(MIMEText(body))

 if attachments is not None:
 for attachment in attachments:
 part = MIMEBase('application', 'octet-stream')
 part.set_payload(open(attachment, 'rb').read())
 encoders.encode_base64(part)
 part.add_header('Content-Disposition',
 'attachment; filename="%s"' % os.path.basename(attachment))
 msg.attach(part)

 server = smtplib.SMTP(self.smtp_server, self.smtp_port)
 server.starttls()
 server.login(self.from_email, self.password)
 text = msg.as_string()
 server.sendmail(self.from_email, to_emails, text)
 server.quit()

# 使用示例if __name__ == '__main__':
 mail_sender = MailSender()
 to_emails = ['recipient1@example.com', 'recipient2@example.com']
 subject = 'Test Email'
 body = 'This is a test email.'
 attachments = ['attachment1.txt', 'attachment2.pdf']

 mail_sender.send_mail(to_emails, subject, body, attachments)


### **使用示例**

在上面的代码中,我们创建了一个 `MailSender` 类来封装我们的邮件发送逻辑。我们可以通过实例化这个类并调用其 `send_mail` 方法来发送邮件。

在使用示例部分,我们演示了如何使用这个类来发送普通邮件和带附件的邮件。

### **注意事项**

请注意,smtplib 库需要 SMTP服务器地址、端口号、发件人邮箱和密码等信息。这些信息可以通过配置文件或环境变量传递给我们的 `MailSender` 类。

此外,请确保在使用 smtplib 库时,SMTP服务器支持 TLS 或 SSL 协议,以便我们能够安全地发送邮件。

最后,请注意,在实际应用中,我们可能需要处理更多的错误和异常情况。

相关标签:
其他信息

其他资源

Top