python实现邮件自动发送

首先我们需要导入两个库:smtplibemail

smtplib库是Python内置的邮件传输协议的SMTP协议实现,可以实现电子邮件的发送功能。而email库则可以方便地操作邮件内容,比如设置邮件主题、发件人、收件人、邮件正文等。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

接着,我们需要设置邮件相关参数,包括SMTP服务器地址、发件人邮箱地址和密码、邮件内容等。

smtp_server = 'smtp.163.com'
sender = 'sender@163.com'
password = 'password'
receiver = 'receiver@163.com'

# 邮件主题
subject = '测试邮件'

# 邮件正文
text = '这是一封测试邮件。'

# 设置邮件头信息
message = MIMEText(text, 'plain', 'utf-8')
message['From'] = Header(sender, 'utf-8')
message['To'] = Header(receiver, 'utf-8')
message['Subject'] = Header(subject, 'utf-8')

其中,MIMEText函数用于设置邮件正文,参数包括文本内容、文本格式和编码方式。Header函数用于设置邮件头信息,包括发件人、收件人和主题等。

然后,我们需要建立SMTP连接,并进行账户验证。在验证通过后,我们可以使用sendmail()方法,实现邮件的发送功能。

try:
    smtpObj = smtplib.SMTP(smtp_server, 25)
    smtpObj.login(sender, password)
    smtpObj.sendmail(sender, [receiver], message.as_string())
    print('邮件发送成功!')
except smtplib.SMTPException as e:
    print('邮件发送失败!错误信息:', e)

在这里我们使用tryexcept来处理邮件发送可能出现的异常。

下面给出一个完整的例子,实现邮件的自动发送功能:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

smtp_server = 'smtp.163.com'
sender = 'sender@163.com'
password = 'password'
receiver = 'receiver@163.com'

subject = '测试邮件'
text = '这是一封测试邮件。'

message = MIMEText(text, 'plain', 'utf-8')
message['From'] = Header(sender, 'utf-8')
message['To'] = Header(receiver, 'utf-8')
message['Subject'] = Header(subject, 'utf-8')

try:
    smtpObj = smtplib.SMTP(smtp_server, 25)
    smtpObj.login(sender, password)
    smtpObj.sendmail(sender, [receiver], message.as_string())
    print('邮件发送成功!')
except smtplib.SMTPException as e:
    print('邮件发送失败!错误信息:', e)

我们也可以扩展这个例子,实现邮件多人发送功能:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

smtp_server = 'smtp.163.com'
sender = 'sender@163.com'
password = 'password'
receivers = ['receiver1@163.com', 'receiver2@163.com']

subject = '测试邮件'
text = '这是一封测试邮件。'

message = MIMEText(text, 'plain', 'utf-8')
message['From'] = Header(sender, 'utf-8')
message['To'] = Header(','.join(receivers), 'utf-8')
message['Subject'] = Header(subject, 'utf-8')

try:
    smtpObj = smtplib.SMTP(smtp_server, 25)
    smtpObj.login(sender, password)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print('邮件发送成功!')
except smtplib.SMTPException as e:
    print('邮件发送失败!错误信息:', e)

在这个例子中,我们只需要将receivers设置为一个包含多个邮箱地址的列表即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现邮件自动发送 - Python技术站

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

相关文章

  • python实现调用其他python脚本的方法

    以下是Python实现调用其他Python脚本的方法的完整攻略: 方法一:import语句 Python中可以使用import语句来调用其他Python脚本。具体步骤如下: 1.编写被调用的Python脚本 例如,我们创建一个名为test.py的Python脚本,其中包含一个打印数字的函数: #test.py def print_num(): print(1…

    python 2023年5月19日
    00
  • 2022最新Python日志库logging总结

    当我们需要了解程序的执行情况时,日志是非常重要的。日志不仅可以帮助我们发现问题,还可以提供很多有用的信息。Python的logging模块是一个非常强大的日志工具,支持多种日志级别和日志格式。本文将介绍Python日志库logging的使用方法,包括日志级别、日志输出格式、日志记录器和处理器等相关内容。 日志级别 Python的logging模块提供5种不同…

    python 2023年5月20日
    00
  • Python安装tar.gz格式文件方法详解

    Python安装tar.gz格式文件方法详解 在Linux环境下,常见的一种文件格式就是tar.gz格式。Python项目也常常发布这种格式的文件。本文将详细介绍如何在Linux环境下安装tar.gz格式的Python文件。 步骤一 下载文件 首先找到需要安装的Python文件的下载链接,通过wget或者curl命令下载,如下面的示例: $ wget htt…

    python 2023年6月5日
    00
  • 如何使用Python从数据库中获取BLOB类型的数据并将其保存到本地文件中?

    以下是如何使用Python从数据库中获取BLOB类型的数据并将其保存到本地文件中的完整使用攻略。 使用Python从数据库中获取BLOB类型的数据并将其保存到本地文件中的前提条件 在Python中从数据库获取BLOB类型的数据并将其保存到本地文件中前,需要保已经安装并启动支持数据的,例如MySQL或PostgreSQL,并且需要安装Python的相数据库驱动…

    python 2023年5月12日
    00
  • python paramiko利用sftp上传目录到远程的实例

    让我来讲解“python paramiko利用sftp上传目录到远程的实例”的完整攻略。 首先,需要了解一下paramiko的基本使用,并且需要保证本地机器上安装了paramiko库。 连接远程主机 首先需要使用SSH协议连接到远程主机。示例代码如下: import paramiko #创建SSHClient实例对象并建立ssh连接 ssh = parami…

    python 2023年6月5日
    00
  • python生成word合同的实例方法

    Python生成Word合同需要使用第三方库python-docx。下面,我将为您提供实现的完整攻略。 安装python-docx库 要使用python-docx,需要先安装它。可以使用pip命令在命令行中安装: pip install python-docx 安装完成后,就可以在Python程序中使用python-docx库来生成Word文档了。 创建Wo…

    python 2023年6月5日
    00
  • 推荐8款常用的Python GUI图形界面开发框架

    下面我给您详细讲解如何使用8款常用的Python GUI图形界面开发框架。 1. Tkinter Tkinter 是 Python 的标准 GUI 库,因此不需要安装任何其他的包就可以使用。Tkinter 提供了一个简单的方式创建基本的 GUI 应用程序,它包括了一系列的控件,如文本框、按钮、标签和列表框等。 以下是一个简单的 Tkinter 示例程序,在屏…

    python 2023年5月30日
    00
  • 将音频输出从一个函数重定向到python中的另一个函数

    【问题标题】:Redirecting audio output from one function to another function in python将音频输出从一个函数重定向到python中的另一个函数 【发布时间】:2023-04-06 23:18:02 【问题描述】: 假设我有两个函数来自两个不同的 API,函数 A 和 B。 默认情况下,函数…

    Python开发 2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部