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日

相关文章

  • Python PyQt5-图形界面的美化操作

    下面是Python PyQt5-图形界面的美化操作的完整攻略,包含了两个示例说明。 Python PyQt5-图形界面的美化操作 一、PyQt5的安装 在进行PyQt5的图形界面美化之前,需要先安装PyQt5。可以通过以下代码在终端或命令行中安装: pip install PyQt5 安装完成后,就可以开始进行图形界面的美化操作了。 二、设置主题样式 设置主…

    python 2023年6月13日
    00
  • python实现的批量分析xml标签中各个类别个数功能示例

    在本攻略中,我们将介绍如何使用Python实现批量分析XML标签中各个类别个数的功能。以下是一个完整攻略,包括两个示例。 步骤1:安装必要的库 首先,我们需要安装必要的库。我们将使用ElementTree库来解析XML文件。 以下是一个示例代码,演示如何使用pip安装ElementTree库: pip install elementtree 在上面的代码中,…

    python 2023年5月15日
    00
  • 简单了解python中的f.b.u.r函数

    下面是关于“简单了解Python中的f.b.u.r函数”的攻略: 标题 首先,让我们来了解一下,这个f.b.u.r函数的作用是什么。 函数介绍 在Python中,f.b.u.r函数主要用于字符串的操作,其含义是将字符串中的小写字母转换成大写字母。具体来说,f.b.u.r函数是由三个字符串处理函数组成的,即: f函数:将字符串中首字母变成大写字母; b函数:将…

    python 2023年5月14日
    00
  • Python安装配置OpenGL环境的全过程记录

    首先我们需要明确一下什么是OpenGL。OpenGL是一种跨平台、开放的3D图形库,它为程序员提供了底层的3D图形操作接口,可以方便地实现各种3D图形的显示和操作。 下面是Python安装配置OpenGL环境的全过程记录: 1.安装Python和pip 在官网下载Python安装包,简单地按照提示一步步安装,安装过程中将pip勾选上。 2.安装PyOpenG…

    python 2023年5月14日
    00
  • python属于解释型语言么

    Python是一种高级编程语言,被广泛用于许多应用程序和网站的开发。关于Python是否是解释型语言,有一些争议。以下是对这个问题的详细分析。 什么是解释型语言? 解释型语言是一种程序设计语言,其源代码不需要直接编译,而是由解释器解释并执行。解释器逐行读取代码,将其翻译成计算机可执行的指令。每次程序运行时,解释器都会重新解释源代码。 相比而言,编译型语言需要…

    python 2023年6月5日
    00
  • 无法使用 python [requests, roboBrowser] 登录网站

    【问题标题】:Can’t login to website using python [requests, roboBrowser]无法使用 python [requests, roboBrowser] 登录网站 【发布时间】:2023-04-07 06:19:01 【问题描述】: 我已经环顾一周了。我找到的所有答案要么已过时,要么不起作用。 我正在尝试登录…

    Python开发 2023年4月8日
    00
  • Python实现搜索算法的实例代码

    Python实现搜索算法的完整攻略 搜索算法是计算机科学中的基本算法之一,它的主要目的是在一组数据中查找特定的元素。在Python中,可以使用简单的代码实现常用的搜索算法。本文将详细讲解Python实现搜索算法的过程,并提供两个示例说明。 线性搜索 线性搜索是一种简单的搜索算法,它的基本思想是从一组数据的第一个元素开始,依次比较每个元素,直到找到目标元素或搜…

    python 2023年5月13日
    00
  • Python jieba库用法及实例解析

    Python jieba库用法及实例解析 jieba是Python中一个非常流行的中文分词库,可以帮助我们将中文文本分割成单个词语。本文将详细讲解jieba库的用法及实例解析。 jieba库的基本用法 jieba库的基本用法非常简单,我们只需要导入jieba库,并调用jieba.cut方法即可将中文文本分割成单个词语。以下是一个简单的Python代码示例: …

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