使用Python的邮件发送功能实现高效沟通
更新时间:2023-11-13Python邮件发送功能介绍
在日常工作中,我们需要使用电子邮件进行沟通。为了提高沟通效率,我们可以使用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发送邮件,可以方便地实现日常工作中的邮件沟通,提高工作效率。