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

以下是使用 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日

相关文章

  • 解决django xadmin主题不显示和只显示bootstrap2的问题

    下面是针对 Django xadmin 主题不显示和只显示 bootstrap2 的问题的完整攻略: 问题描述 在使用 Django xadmin 后台管理系统时,我们可能会遇到以下两个问题: xadmin 主题显示异常:前端页面没有样式,显示非常原始; xadmin 只显示 bootstrap2 样式:页面只显示 bootstrap2 的样式而不是应该的主…

    人工智能概览 2023年5月25日
    00
  • 使用Node.js和Socket.IO扩展Django的实时处理功能

    使用Node.js和Socket.IO扩展Django的实时处理功能 介绍 Real-time应用程序是当前Web开发的热门议题之一,它能够让你在没有任何延迟的情况下与你的用户进行实时的通信。 Node.js和Socket.IO是两个非常流行的工具,能够让你轻松地在Django应用程序中实现实时功能。本文将演示如何使用Node.js和Socket.IO扩展D…

    人工智能概览 2023年5月25日
    00
  • Laravel 5 框架入门(一)

    Laravel 5 框架入门(一) Laravel 是一款优秀的 PHP Web 框架,能够帮助开发者快速构建现代化的 Web 应用程序。本文将从安装 Laravel 开始,详细介绍 Laravel 框架的使用方法。 环境要求 要使用 Laravel 5,您需要满足以下环境要求: PHP 版本 7.2.0 或更高版本 BCMath PHP 扩展 Ctype …

    人工智能概览 2023年5月25日
    00
  • 详解supervisor使用教程

    详解Supervisor使用教程 什么是Supervisor Supervisor是一款Linux下的进程管理工具,可以很方便地监控和管理系统进程。使用Supervisor,可以很轻松地实现进程的自动重启、崩溃自动恢复、日志文件分割等功能。 安装Supervisor 安装Supervisor的方法因系统而异。 在Debian系系统下,可以使用如下命令安装: …

    人工智能概览 2023年5月25日
    00
  • pytorch中使用cuda扩展的实现示例

    使用CUDA可以在GPU上加速深度学习模型的计算,PyTorch提供了非常方便的API来实现CUDA扩展。本攻略将介绍如何在PyTorch中使用CUDA扩展提高模型的训练和推断效率。 准备工作 在使用CUDA扩展之前,我们需要确保系统上已经安装了GPU驱动程序和CUDA工具包,同时需要安装PyTorch和相关的依赖库。 示例1:使用CUDA加速神经网络的训练…

    人工智能概论 2023年5月25日
    00
  • 详解Django将秒转换为xx天xx时xx分

    下面是详解Django将秒转换为xx天xx时xx分的完整攻略。 1. 背景与需求 在开发网站过程中,我们经常需要将秒转换为更友好的时间格式,比如 xx天xx时xx分,这在Django中十分常见。因此,在此我们提供一种Django转换秒数的方法,方便大家进行时间转换。 2. 实现思路: 首先,我们从传入的秒数开始,通过除法和取余的方法计算天数、小时、分钟和秒数…

    人工智能概论 2023年5月25日
    00
  • 掌握C++编程中反斜杠续行符的使用方法

    掌握C++编程中反斜杠续行符的使用方法非常重要。它可以帮助我们避免代码行过长,提高代码可读性和可维护性。下面是针对这个问题的完整攻略,包括定义、使用方法和2个示例。 什么是反斜杠续行符? 反斜杠续行符是 C++ 语言提供的一种机制,它允许在代码行末尾使用反斜杠字符 \ 来表示下一行代码的延续。这样可以将一行代码分割成多行的形式,使得代码更加清晰、易读和维护。…

    人工智能概览 2023年5月25日
    00
  • python中的随机数种子seed()用法说明

    Python中的随机数种子seed()用法说明 什么是随机数种子 在计算机科学中,随机数生成算法是一种用于生成随机数的算法,这个过程也被称为随机数生成器。随机数生成器的输入被称为“种子”,产生的输出被成为随机数。 随机数、伪随机数生成器产生随机或伪随机数字序列的质量取决于选择种子(输入)。如果使用相同的种子调用随机数生成器两次,它将会产生相同的数字序列。 一…

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