懒人必备Python代码之自动发送邮件

懒人必备Python代码之自动发送邮件

邮件是我们日常生活中常用的一种通信方式,而在工作中,更是必不可少的一种沟通方式。借助Python的自动发送邮件功能,可以简化我们发送邮件的流程,提高我们的工作效率。

准备工作

在使用Python发送邮件之前,需要先进行一些准备工作:

  1. 申请邮箱SMTP服务的授权码,以便Python能够使用这个账户发送邮件。

  2. 在本地安装Python的smtplib和email库。

  3. 确定邮件的发送者、接收者、主题和内容。

发送邮件示例

下面,我们将使用Python的smtplib和email库,编写一个示例实现自动发送邮件的功能。

示例1:纯文本邮件的发送

# 导入库
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 设置发送方信息和邮件内容
sender = 'example@163.com'
receiver = 'example@qq.com'
subject = 'Python SMTP 测试'
mail_msg = 'Python 邮件测试'
# MIMEText为邮件正文的数据类型
message = MIMEText(mail_msg.encode('utf-8'), 'plain', 'utf-8')
message['From'] = Header('Python学习者', 'utf-8')  # 发送者信息
message['To'] = Header('Python爱好者', 'utf-8')  # 接收者信息
message['Subject'] = Header(subject, 'utf-8')  # 邮件标题

# 设置SMTP服务器信息和授权码
smtp_server = 'smtp.163.com'
smtp_port = 25
smtp_username = 'example@163.com'
smtp_password = '********'

# 发送邮件
try:
    smtpObj = smtplib.SMTP(smtp_server, smtp_port)
    smtpObj.login(smtp_username, smtp_password)
    smtpObj.sendmail(sender, receiver, message.as_string())
    print('邮件发送成功')
except smtplib.SMTPException as e:
    print('邮件发送失败')

在示例1中,我们通过smtp库的SMTP()方法创建SMTP服务器连接对象,然后通过login()方法登录账户,最后通过sendmail()方法发送邮件。邮件的内容和邮件格式都通过email库中的MIMEText类来处理。其中,message对象中包含了邮件正文、发送者、接收者、邮件标题等信息。

示例2:包含附件的邮件的发送

# 导入库
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header

# 设置发送方信息和邮件内容
sender = 'example@163.com'
receiver = 'example@qq.com'
subject = 'Python SMTP 测试'
mail_msg = 'Python 邮件测试'
message = MIMEMultipart()  # 邮件对象
message['From'] = Header('Python学习者', 'utf-8')  # 发送者信息
message['To'] = Header('Python爱好者', 'utf-8')  # 接收者信息
message['Subject'] = Header(subject, 'utf-8')  # 邮件标题

# 构造附件并添加到邮件对象中
part = MIMEApplication(open('example.pdf', 'rb').read())
part.add_header('Content-Disposition', 'attachment', filename='example.pdf')
message.attach(part)

# 构造邮件正文并添加到邮件对象中
text = MIMEText(mail_msg.encode('utf-8'), 'plain', 'utf-8')
message.attach(text)

# 设置SMTP服务器信息和授权码
smtp_server = 'smtp.163.com'
smtp_port = 25
smtp_username = 'example@163.com'
smtp_password = '********'

# 发送邮件
try:
    smtpObj = smtplib.SMTP(smtp_server, smtp_port)
    smtpObj.login(smtp_username, smtp_password)
    smtpObj.sendmail(sender, receiver, message.as_string())
    print('邮件发送成功')
except smtplib.SMTPException as e:
    print('邮件发送失败')

在示例2中,邮件内容包含了一个附件(example.pdf),通过MIMEApplication类来处理附件。同时,还需要额外添加一个文本邮件正文(mail_msg),并结合收件人、主题等信息构造message对象。乔装打扮完毕后,接下来的操作方式跟示例1基本一致。

注意事项

  1. 注意邮件正文和附件的格式,需要按照email库的要求转化成合适的类型(如MIMEText、MIMEMultipart等)。

  2. 发送邮件之前,需要设置好SMTP服务器及账户所需的授权码。

  3. 根据不同的邮件客户端(如QQ、Gmail、Outlook等)的不同设置,可能需要更改SMTP服务器的地址和端口号。

以上就是关于使用Python发送邮件的详细攻略,希望能够帮助大家简化日常工作中的邮件发送流程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:懒人必备Python代码之自动发送邮件 - Python技术站

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

相关文章

  • python 爬虫网页登陆的简单实现

    下面是关于“python 爬虫网页登陆的简单实现”的完整攻略: 1. 背景介绍 爬虫一般需要模拟登陆才能爬取需要登录后才能获取的信息,例如淘宝、京东等电商类网站。Python作为一门较为流行的语言之一,它提供了许多优秀的库和模块用于爬虫操作,其中最为著名的是requests模块。本文将以requests模块为例,介绍如何利用Python实现网页登陆。 2. …

    python 2023年5月14日
    00
  • 一行代码python实现文件共享服务器

    让我来详细解释一下“一行代码python实现文件共享服务器”的完整攻略。 简介 在讲解具体实现方法之前,我们先来了解一下所使用的库和工具。 Python标准库 http.server:Python内置的HTTP服务器模块。 twisted :Python异步网络框架,用于网络编程。 这两个库都可以用于实现文件共享服务器,但在本文中我们主要关注 http.se…

    python 2023年6月5日
    00
  • python如何保存文本文件

    下面是Python如何保存文本文件的完整攻略: 1. 使用Python内置函数open() Python内置函数open()可以用来创建和操作文件。下面是一个示例代码,用来保存一个文本文件并写入数据: # 定义要写入文件的数据 data = "Hello, world!" # 使用open()函数创建文件并打开,指定文件名和打开模式为“写…

    python 2023年6月3日
    00
  • 如何在 Python 的测试中获取文件?

    【问题标题】:How can I get files within the tests in Python?如何在 Python 的测试中获取文件? 【发布时间】:2023-04-06 18:29:01 【问题描述】: 我的包结构如下: . ├── my_app │   ├── app.py │   ├── cli.py │   ├── db.py │   …

    Python开发 2023年4月7日
    00
  • Python实战之markdown转pdf(包含公式转换)

    Python实战之markdown转pdf(包含公式转换)的完整攻略可以分为以下几个步骤: 1. 安装必要的库 使用Python Markdown生成PDF需要安装以下库:- markdown- pdfkit 使用数学公式需要安装以下软件:- LaTeX- XeTeX 安装方式请参考官网或自行搜索。 2. 编写Markdown文档 在本地或者在线markdo…

    python 2023年6月3日
    00
  • 运行独立 pyspark 时出现 Windows 错误解决办法

    下面是关于“运行独立pyspark时出现Windows错误解决办法”的完整攻略: 问题描述 在运行独立pyspark时,可能会出现类似于“Failed to load native-hadoop library for your platform”、“No module named win32api”等Windows错误。这些错误主要是由于缺少相关的库或组件…

    python 2023年5月13日
    00
  • 利用Python实现简单的Excel统计函数

    以下是“利用Python实现简单的Excel统计函数”的完整实例教程: 1. 引言 Python可以很方便地对Excel文件进行读写和处理,本文将介绍如何使用Python实现简单的Excel统计函数。为了实现这个目标,我们将使用Pandas库,它是一个用于数据处理的强大的Python库。如果您还不熟悉Pandas库,可以先查看Pandas的官方文档。 2. …

    python 2023年5月13日
    00
  • python2.7+selenium2实现淘宝滑块自动认证功能

    下面是关于“Python2.7+Selenium2实现淘宝滑块自动认证功能”的完整攻略,包括环境搭建、安装Selenium、代码示例等步骤。 环境搭建 首先,需要安装Python 2.7版本以及pip包管理工具。之后,通过pip安装相关依赖包,包括selenium、pillow和numpy等。这些包的安装可以通过以下命令来完成: pip install se…

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