python发送邮件的实例代码(支持html、图片、附件)

Python发送邮件的实例代码(支持HTML、图片、附件)攻略

Python是一种强大的编程语言,可以用于发送电子邮件。Python的smtplib和email库提供了发送电子邮件的功能。本文将详细讲解Python发送邮件的实例代码,包括发送纯文本邮件、发送HTML邮件、发送带图片的邮件、发送带附件的邮件等。

步骤1:导入库

在发送邮件之前,我们需要导入smtplib和email库。以下是导入库的示例代码:

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

在上面的代码中,我们导入了smtplib、MIMEText、MIMEMultipart、MIMEImage和MIMEApplication等库,以便发送不同类型的邮件。

步骤2:连接SMTP服务器

在发送邮件之前,我们需要连接SMTP服务器。以下是连接SMTP服务器的示例代码:

smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp_username = 'your_email@gmail.com'
smtp_password = 'your_password'

smtp_connection = smtplib.SMTP(smtp_server, smtp_port)
smtp_connection.starttls()
smtp_connection.login(smtp_username, smtp_password)

在上面的代码中,我们使用Gmail作为SMTP服务器,并使用starttls()函数启用TLS加密。然后,我们使用login()函数登录SMTP服务器。

步骤3:发送邮件

在连接SMTP服务器后,我们可以发送邮件。以下是发送邮件的示例代码:

发送纯文本邮件

from_email = 'your_email@gmail.com'
to_email = 'recipient_email@gmail.com'
subject = 'Test Email'
body = 'This is a test email.'

msg = MIMEText(body)
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

smtp_connection.sendmail(from_email, to_email, msg.as_string())

在上面的代码中,我们使用MIMEText()函数创建了一个纯文本邮件,并使用sendmail()函数发送了邮件。

发送HTML邮件

from_email = 'your_email@gmail.com'
to_email = 'recipient_email@gmail.com'
subject = 'Test Email'
body = '<h1>This is a test email.</h1>'

msg = MIMEMultipart('related')
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

html = MIMEText(body, 'html')
msg.attach(html)

smtp_connection.sendmail(from_email, to_email, msg.as_string())

在上面的代码中,我们使用MIMEMultipart()函数创建了一个包含HTML内容的邮件,并使用sendmail()函数发送了邮件。

发送带图片的邮件

from_email = 'your_email@gmail.com'
to_email = 'recipient_email@gmail.com'
subject = 'Test Email'
body = '<h1>This is a test email.</h1><img src="cid:image1">'

msg = MIMEMultipart('related')
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

with open('image.jpg', 'rb') as f:
    image_data = f.read()

image = MIMEImage(image_data)
image.add_header('Content-ID', '<image1>')
msg.attach(image)

html = MIMEText(body, 'html')
msg.attach(html)

smtp_connection.sendmail(from_email, to_email, msg.as_string())

在上面的代码中,我们使用MIMEMultipart()函数创建了一个包含图片的邮件,并使用sendmail()函数发送了邮件。我们使用MIMEImage()函数将图片添加到邮件中,并使用Content-ID标识图片。然后,我们将HTML内容添加到邮件中。

发送带附件的邮件

from_email = 'your_email@gmail.com'
to_email = 'recipient_email@gmail.com'
subject = 'Test Email'
body = 'This is a test email.'

msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

with open('document.pdf', 'rb') as f:
    document_data = f.read()

document = MIMEApplication(document_data)
document.add_header('Content-Disposition', 'attachment', filename='document.pdf')
msg.attach(document)

text = MIMEText(body)
msg.attach(text)

smtp_connection.sendmail(from_email, to_email, msg.as_string())

在上面的代码中,我们使用MIMEMultipart()函数创建了一个包含附件的邮件,并使用sendmail()函数发送了邮件。我们使用MIMEApplication()函数将附件添加到邮件中,并使用Content-Disposition标识附件。然后,我们将文本内容添加到邮件中。

步骤4:关闭SMTP连接

在发送邮件后,我们需要关闭SMTP连接。以下是关闭SMTP连接的示例代码:

smtp_connection.quit()

在上面的代码中,我们使用quit()函数关闭SMTP连接。

示例1:发送纯文本邮件

以下是一个发送纯文本邮件的示例代码:

import smtplib
from email.mime.text import MIMEText

smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp_username = 'your_email@gmail.com'
smtp_password = 'your_password'

smtp_connection = smtplib.SMTP(smtp_server, smtp_port)
smtp_connection.starttls()
smtp_connection.login(smtp_username, smtp_password)

from_email = 'your_email@gmail.com'
to_email = 'recipient_email@gmail.com'
subject = 'Test Email'
body = 'This is a test email.'

msg = MIMEText(body)
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

smtp_connection.sendmail(from_email, to_email, msg.as_string())

smtp_connection.quit()

在上面的代码中,我们使用smtplib和email库发送了一封纯文本邮件。

示例2:发送带图片的邮件

以下是一个发送带图片的邮件的示例代码:

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

smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp_username = 'your_email@gmail.com'
smtp_password = 'your_password'

smtp_connection = smtplib.SMTP(smtp_server, smtp_port)
smtp_connection.starttls()
smtp_connection.login(smtp_username, smtp_password)

from_email = 'your_email@gmail.com'
to_email = 'recipient_email@gmail.com'
subject = 'Test Email'
body = '<h1>This is a test email.</h1><img src="cid:image1">'

msg = MIMEMultipart('related')
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

with open('image.jpg', 'rb') as f:
    image_data = f.read()

image = MIMEImage(image_data)
image.add_header('Content-ID', '<image1>')
msg.attach(image)

html = MIMEText(body, 'html')
msg.attach(html)

smtp_connection.sendmail(from_email, to_email, msg.as_string())

smtp_connection.quit()

在上面的代码中,我们使用smtplib和email库发送了一封带图片的邮件。我们使用MIMEImage()函数将图片添加到邮件中,并使用Content-ID标识图片。然后,我们将HTML内容添加到邮件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python发送邮件的实例代码(支持html、图片、附件) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Windows系统下安装Python的SSH模块教程

    下面我会为你详细讲解在Windows系统下安装Python的SSH模块教程的完整攻略,包括安装前的准备工作、安装过程、示例说明等。 安装前的准备工作 在安装Python的SSH模块之前,首先需要检查以下几个准备工作: 确保你的Windows系统已经安装了Python环境,并且版本至少为Python 2.7 或者Python 3.4以上。 安装OpenSSL库…

    python 2023年5月30日
    00
  • python爬虫的工作原理

    Python爬虫是通过编写程序来自动化访问网页并提取内容的过程。一般而言,爬虫分为以下几个步骤: 1.发送HTTP请求并获取页面内容 爬虫首先发送HTTP请求到目标网站,请求相应的页面。可以使用Python中的requests或urllib库来完成HTTP请求过程,其中requests更为方便、简单易用。 以使用requests库爬取“豆瓣电影Top250”…

    python 2023年5月14日
    00
  • django2.2安装错误最全的解决方案(小结)

    以下是详细的“django2.2安装错误最全的解决方案(小结)”攻略。 标题 1. 安装环境 首先,我们需要确保电脑上安装了Python环境以及pip。如果没有安装,可以去官网下载并安装。 2. 安装虚拟环境 在开始安装Django之前,我们需要先安装一个虚拟环境,以便于隔离不同的项目之间的依赖。 我们可以通过以下命令来安装虚拟环境: pip install…

    python 2023年5月13日
    00
  • 如何在Python中计算残余的平方和

    计算残余的平方和是统计学中一个重要的概念,通常用于评估模型的拟合程度。在Python中,计算残余的平方和可以使用统计学模型库statsmodels中的OLS模型来实现。 以下是计算残余平方和的步骤: 1.导入必要的库:statsmodels和numpy import numpy as np import statsmodels.api as sm 2.生成样…

    python-answer 2023年3月25日
    00
  • 对python中url参数编码与解码的实例详解

    对Python中Url参数编码与解码的实例详解 在Web开发中,URL 参数的传递是非常常见的方式,而 URL 参数也常常需要进行编码/解码的处理,这里我们介绍 Python 中常用的 URL 参数编码与解码方法,以及实例说明。 URL 编码 URL 编码是将 URL 参数中的非字母和数字的字符转换成特殊字符序列,以便浏览器和服务器可以处理这些字符。Pyth…

    python 2023年5月31日
    00
  • Python安装Bs4及使用方法

    Python安装Bs4及使用方法 BeautifulSoup是Python中一个非常流行的HTML和XML解析库,可以帮助我们更方便地解析网页。本文将介绍如何安装Bs4库,并演示如何使用它来解析HTML文档。 安装Bs4库 在使用Bs4库之前,需要先安装它。以下是一个示例代码,演示如何使用pip安装Bs4库: pip install beautifulsou…

    python 2023年5月15日
    00
  • Python网页正文转换语音文件的操作方法

    下面给您详细讲解“Python网页正文转换语音文件的操作方法”的完整攻略。 总体思路 Python通过网络抓取网页正文,然后使用文本转语音工具将正文转换成语音文件。 具体步骤 安装所需要的第三方库 首先需要安装两个第三方库:bs4和pyttsx3。 pip install bs4 pyttsx3 bs4是Python库中的一个解析器,可以用来处理HTML和X…

    python 2023年5月19日
    00
  • Python 正则表达式的高级用法

    Python正则表达式的高级用法 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如数据清洗、文本分析、信息提取等。在Python中,我们可以使用re模块来操作正则表达式。本攻略将介绍Python正则表达式的高级用法,包括正则表达式分组、正则表达式回溯引用、正则表达式预搜索等。 正则表达式分组 正则表达式分组是指将正则表达式中的一部分内容用括号…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部