c语言编程笔录

首页 >   > 笔记大全

笔记大全

使用Python的邮件发送功能实现高效沟通

更新时间:2023-11-13

Python邮件发送功能介绍

在日常工作中,我们需要使用电子邮件进行沟通。为了提高沟通效率,我们可以使用Python的邮件发送功能。Python内置的smtplib和email库可以使邮件的发送变得简单易懂。

发送纯文本邮件

首先,我们可以使用smtp库中的SMTP类建立与SMTP服务器的连接。然后使用email库构建邮件对象,并将邮件发送出去。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 发件人邮箱
sender = 'from@example.com'
# 收件人邮箱
receiver = 'to@example.com'
# 邮件主题
subject = 'Python SMTP测试'

# 邮件正文
mail_msg = """

Python 邮件发送测试...

这是一封测试邮件。

""" # 构造邮件对象 msg = MIMEText(mail_msg, 'html', 'utf-8') # 纯文本邮件使用MIMEText,第二个参数传入‘plain’;带附件的邮件使用MIMEImage、MIMEApplication等 msg['From'] = Header(sender, 'utf-8') msg['To'] = Header(receiver, 'utf-8') msg['Subject'] = Header(subject, 'utf-8') # 发送邮件 smtpObj = smtplib.SMTP('smtp.example.com') smtpObj.login('user@example.com', 'password') smtpObj.sendmail(sender, receiver, msg.as_string()) smtpObj.quit() print('邮件发送成功')

发送带附件的邮件

如果需要发送带附件的邮件,我们可以使用email库中的MIMEMultipart类构建带附件的邮件。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.header import Header
from email import encoders

# 发件人邮箱
sender = 'from@example.com'
# 收件人邮箱
receiver = 'to@example.com'
# 邮件主题
subject = 'Python SMTP测试'

# 构造邮件对象
msg = MIMEMultipart()

# 邮件正文
mail_msg = """

Python 邮件发送测试...

这是一封测试邮件。

""" msg.attach(MIMEText(mail_msg, 'html', 'utf-8')) # 附件 with open('test.xlsx', 'rb') as f: mime = MIMEBase('xlxs', 'xlsx', filename='test.xlsx') mime.add_header('Content-Disposition', 'attachment', filename='test.xlsx') mime.add_header('Content-ID', '<0>') mime.add_header('X-Attachment-Id', '0') mime.set_payload(f.read()) encoders.encode_base64(mime) msg.attach(mime) msg['From'] = Header(sender, 'utf-8') msg['To'] = Header(receiver, 'utf-8') msg['Subject'] = Header(subject, 'utf-8') # 发送邮件 smtpObj = smtplib.SMTP('smtp.example.com') smtpObj.login('user@example.com', 'password') smtpObj.sendmail(sender, receiver, msg.as_string()) smtpObj.quit() print('邮件发送成功')

发送带图片的邮件

如果需要发送带图片的邮件,我们可以使用email库中的MIMEMultipart类构建带图片的邮件。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.header import Header
from email import encoders

# 发件人邮箱
sender = 'from@example.com'
# 收件人邮箱
receiver = 'to@example.com'
# 邮件主题
subject = 'Python SMTP测试'

# 构造邮件对象
msg = MIMEMultipart()

# 邮件正文
mail_msg = """

Python 邮件发送测试...

这是一封测试邮件。

""" msg.attach(MIMEText(mail_msg, 'html', 'utf-8')) # 图片 with open('test.png', 'rb') as f: mime = MIMEImage(f.read()) mime.add_header('Content-ID', '') mime.add_header('X-Attachment-Id', '0') msg.attach(mime) msg['From'] = Header(sender, 'utf-8') msg['To'] = Header(receiver, 'utf-8') msg['Subject'] = Header(subject, 'utf-8') # 发送邮件 smtpObj = smtplib.SMTP('smtp.example.com') smtpObj.login('user@example.com', 'password') smtpObj.sendmail(sender, receiver, msg.as_string()) smtpObj.quit() print('邮件发送成功')

总结

本文介绍了Python的邮件发送功能及其实现方式,从纯文本邮件、带附件邮件到带图片邮件,均有介绍。使用Python发送邮件,可以方便地实现日常工作中的邮件沟通,提高工作效率。