c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python 邮件发送格式化

更新时间:2023-09-30

Python 邮件发送格式化

在日常工作和生活中,我们经常需要发送邮件,有时候需要给邮件添加一些格式化效果来使邮件更加美观和易读。Python 提供了邮件模块,可以便捷的完成邮件发送和格式化等操作。

第一段:邮件发送基础

在使用 Python 发送邮件前,需要先了解邮件协议以及相关概念。邮件协议有两种:SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol - Version 3)。SMTP 用于发送邮件,而 POP3 用于接收邮件。在使用 Python 发送邮件时,需要使用到 SMTP 协议,同时也需要使用到 Python 标准库中的 smtplib 模块。

import smtplib
from email.mime.text import MIMEText

# SMTP 服务器地址
smtp_server='smtp.163.com'
# SMTP 服务器端口号
smtp_port=25
# 发件人地址
sender='sender@163.com'
# 发件人账号密码
password='password'
# 收件人地址
receiver='receiver@126.com'

# 邮件主题
subject='Test email'
# 邮件正文
content='This is a test email!'

message=MIMEText(content, 'plain', 'utf-8')
message['From']=sender
message['To']=receiver
message['Subject']=subject

# 连接 SMTP 服务器
smtp_obj=smtplib.SMTP(smtp_server, smtp_port)
# 登录 SMTP 服务器
smtp_obj.login(sender, password)
# 发送邮件
smtp_obj.sendmail(sender, receiver, message.as_string())
# 关闭 SMTP 连接
smtp_obj.quit()

第二段:邮件内容格式化

Python 邮件模块支持多种邮件格式,包括纯文本邮件、HTML 邮件等。下面的代码演示如何发送一封 HTML 格式的邮件。

import smtplib
from email.mime.text import MIMEText

# SMTP 服务器地址
smtp_server='smtp.163.com'
# SMTP 服务器端口号
smtp_port=25
# 发件人地址
sender='sender@163.com'
# 发件人账号密码
password='password'
# 收件人地址
receiver='receiver@126.com'

# 邮件主题
subject='Test html email'
# 邮件正文
content='

This is a html email!

Content is here

' message=MIMEText(content, 'html', 'utf-8') message['From']=sender message['To']=receiver message['Subject']=subject # 连接 SMTP 服务器 smtp_obj=smtplib.SMTP(smtp_server, smtp_port) # 登录 SMTP 服务器 smtp_obj.login(sender, password) # 发送邮件 smtp_obj.sendmail(sender, receiver, message.as_string()) # 关闭 SMTP 连接 smtp_obj.quit()

第三段:邮件附件添加

邮件模块还支持添加附件,可以方便地发送带有附件的邮件。下面的代码演示如何发送一封带有附件的邮件。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

# SMTP 服务器地址
smtp_server='smtp.163.com'
# SMTP 服务器端口号
smtp_port=25
# 发件人地址
sender='sender@163.com'
# 发件人账号密码
password='password'
# 收件人地址
receiver='receiver@126.com'

# 邮件主题
subject='Test email with attachment'
# 邮件正文
content='This is a test email with attachment!'

message=MIMEMultipart()
message.attach(MIMEText(content, 'plain', 'utf-8'))

# 添加附件
file_path='/path/to/attachment.txt'
with open(file_path, 'rb') as f:
	attachment=MIMEApplication(f.read())
	attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt')
	message.attach(attachment)

message['From']=sender
message['To']=receiver
message['Subject']=subject

# 连接 SMTP 服务器
smtp_obj=smtplib.SMTP(smtp_server, smtp_port)
# 登录 SMTP 服务器
smtp_obj.login(sender, password)
# 发送邮件
smtp_obj.sendmail(sender, receiver, message.as_string())
# 关闭 SMTP 连接
smtp_obj.quit()

第四段:总结

Python 邮件模块提供了便捷的方式来发送格式化的邮件,可以使用纯文本格式、HTML 格式、带有附件的邮件等。在使用邮件模块时,需要注意邮件协议、账号密码、收件人地址等相关设置。同时,还可以使用邮件模板来定制邮件格式,在发送邮件前进行渲染和替换。