使用Python第三方库发送电子邮件的示例代码

yizhihongxing

以下是使用 Python 第三方库发送电子邮件的示例代码攻略:

1. 准备工作

要使用 Python 第三方库发送电子邮件,必须先安装 smtplibemail 两个库。可以使用命令行或者 pip 安装:

pip install smtplib email

2. 示例一:发送简单邮件

import smtplib
from email.mime.text import MIMEText

# 发件人邮箱昵称和账号
sender_name = '发件人昵称'
sender_account = '发件人账号'

# 发件人邮箱地址和密码(注意,这里的密码是指“授权码”,不是邮箱登录密码)
sender_email = '发件人邮箱地址'
sender_password = '发件人邮箱授权码,不是登录密码'

# 收件人邮箱地址
receiver_email = '收件人邮箱地址'

# 邮件正文
mail_body = '这是一封测试邮件,无需回复。'

# 邮件对象(MIMEText 类型,包含邮件正文)
message = MIMEText(mail_body, 'plain', 'utf-8')
message['From'] = sender_name + '<' + sender_email + '>'
message['Subject'] = 'Python 发送邮件测试'
message['To'] = receiver_email

# 发送邮件
try:
    smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)  # QQ 邮箱 SMTP 服务器地址和端口号
    smtp.login(sender_account, sender_password)
    smtp.sendmail(sender_email, receiver_email, message.as_string())
    print('邮件发送成功!')
except Exception as e:
    print('邮件发送失败:', e)
finally:
    smtp.quit()

以上代码中使用了 smtplibemail.mime.text 两个 Python 第三方库。该程序可以实现发送一封简单的文本邮件。其中,需要修改的部分是:发件人邮箱昵称和账号、发件人邮箱地址和密码、收件人邮箱地址、邮件正文和邮件主题。要注意的是,发件人的邮箱账号和密码需要通过邮箱设置页面获取。

3. 示例二:发送带有附件的邮件

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

# 发件人邮箱昵称和账号
sender_name = '发件人昵称'
sender_account = '发件人账号'

# 发件人邮箱地址和密码
sender_email = '发件人邮箱地址'
sender_password = '发件人邮箱授权码,不是登录密码'

# 收件人邮箱地址
receiver_email = '收件人邮箱地址'

# 邮件正文
mail_body = '这封邮件附带了一个测试文本文件和一个测试图片,请注意查收。'

# 创建邮件对象
message = MIMEMultipart()
message['From'] = sender_name + '<' + sender_email + '>'
message['Subject'] = 'Python 发送邮件测试(含附件)'
message['To'] = receiver_email

# 添加邮件正文
text = MIMEText(mail_body, 'plain', 'utf-8')
message.attach(text)

# 添加附件:测试文本文件
filename = 'test.txt'
attachment = MIMEApplication(open(filename, 'rb').read())
attachment.add_header('Content-Disposition', 'attachment', filename=filename)
message.attach(attachment)

# 添加附件:测试图片
filename = 'test.png'
attachment = MIMEApplication(open(filename, 'rb').read())
attachment.add_header('Content-Disposition', 'attachment', filename=filename)
message.attach(attachment)

# 发送邮件
try:
    smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)  # QQ 邮箱 SMTP 服务器地址和端口号
    smtp.login(sender_account, sender_password)
    smtp.sendmail(sender_email, receiver_email, message.as_string())
    print('邮件发送成功!')
except Exception as e:
    print('邮件发送失败:', e)
finally:
    smtp.quit()

以上代码实现了发送一封带有附件的邮件(包括测试文本文件和测试图片)。该程序的关键是使用了 email.mime.multipartemail.mime.application 两个类,并通过 message.attach() 方法将附件添加到邮件中。需要修改的部分是同样是发件人和收件人信息以及邮件正文和主题,同时也需要将测试附件文件添加到代码所在的目录中。

以上就是 Python 第三方库发送电子邮件的示例代码攻略,希望对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python第三方库发送电子邮件的示例代码 - Python技术站

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

相关文章

  • Docker如何部署Python项目的实现详解

    下面我将为你详细讲解“Docker如何部署Python项目的实现详解”。 Docker部署Python项目 1. 什么是Docker? Docker是一种开源软件平台,可以帮助开发者将应用程序与其依赖项打包到一个可移植的容器中,然后发布到任何支持Docker的机器上。 2. Docker如何部署Python项目? Docker部署Python项目的实现方法如…

    人工智能概览 2023年5月25日
    00
  • Android源码中的目录结构详解

    Android源码中的目录结构详解 本文将详细介绍Android源码中的目录结构以及各个目录的作用。 目录结构概述 Android源码中的目录结构非常庞杂,主要分为以下几层目录: 外部目录:包含所有与安卓操作系统无关的软件包,其中每个软件包都是独立的项目源代码,通常使用特定的版本控制系统进行管理。 硬件抽象层目录(HAL):包含所有与硬件相关的代码,硬件厂商…

    人工智能概论 2023年5月25日
    00
  • Nginx 简单的负载均衡配置示例

    下面是详细的攻略。 什么是负载均衡 先来了解一下什么是负载均衡。负载均衡是将请求分配到多个服务器上,用以分担单个服务器的压力,提高系统的性能和可靠性。 Nginx 负载均衡的配置 首先安装 Nginx bash sudo apt update sudo apt install nginx 编辑 Nginx 配置文件 bash sudo nano /etc/n…

    人工智能概览 2023年5月25日
    00
  • Python的Django框架中if标签的相关使用

    下面是关于Python的Django框架中if标签的相关使用的完整攻略。 1. if标签的概述 if标签是Django内置的一个模板标签,它可以在模板中实现类似于if语句的条件判断,根据不同的条件展示不同的内容。 2. if标签的基本用法 if标签的最简单用法是只包含一个条件,例如: {% if condition %} …展示内容… {% endi…

    人工智能概览 2023年5月25日
    00
  • 写论文有福啦! 只需1秒即可把PDF文件转换成Word格式

    下面是详细讲解“写论文有福啦! 只需1秒即可把PDF文件转换成Word格式”的完整攻略。 1. 确定使用转换工具 有很多PDF文件转Word的工具,其中一些是免费的,一些是收费的。你可以通过搜索引擎或者推荐网站找到各种类型的转换工具,例如Adobe Acrobat、Smallpdf、Zamzar、WPS PDF to Word Converter等等。 2.…

    人工智能概览 2023年5月25日
    00
  • python没有gpu,如何改用cpu跑代码

    当Python无法使用GPU时,您可以将其配置为使用CPU来执行代码。下面是详细的Python CPU转换攻略: 确认您的环境是否支持CPU执行。您可以使用如下代码进行检查: “` import tensorflow as tf if tf.test.is_gpu_available(): print(‘有GPU可用’) else: print(‘没有GP…

    人工智能概论 2023年5月24日
    00
  • 关于feign对x-www-form-urlencode类型的encode和decode问题

    Feign是一个RESTful风格的HTTP客户端框架,它通过注解的方式来定义和调用HTTP方法,简化了HTTP请求的实现过程。在进行POST请求时,我们通常有两种方式来对请求参数进行编码:application/x-www-form-urlencoded和application/json。相对于后者,前者的请求参数格式类似于name=value&n…

    人工智能概论 2023年5月25日
    00
  • 新手必备Python开发环境搭建教程

    新手必备Python开发环境搭建教程 简介 Python是一门非常流行的编程语言,在多数领域都有广泛的应用。Python的优势在于语法简洁明了,易于学习,同时也有非常强大的开源社区支持。在开始Python编程之前,需要先搭建Python的开发环境。本文将介绍如何在Windows和macOS系统中搭建Python开发环境。 Windows系统 下载Python…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部