python实现自动发送邮件

下面是“Python实现自动发送邮件”的完整攻略。

一、准备工作

1. 获取邮箱账号信息

首先需要获取自己邮箱的账号信息,包括:

  • 邮箱地址
  • 授权码/密码(注意不是邮箱登录密码)

2. 安装Python第三方库

pip install requests
pip install bs4
pip install lxml

二、编写Python脚本

1. 发送纯文本邮件

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

# 配置发送方信息
sender = '发送方邮箱地址'
auth_code = '发送方授权码'

# 配置接收方信息
receivers = ['接收方邮箱地址'] 

# 配置邮件内容
message = MIMEText('邮件内容,纯文本格式', 'plain', 'utf-8')
message['From'] = Header('发送人昵称', 'utf-8')
message['To'] = Header('接收人昵称', 'utf-8')
message['Subject'] = Header('邮件主题', 'utf-8')

try:
    smtp_obj = smtplib.SMTP('smtp.发送方邮箱地址后缀', 25)
    smtp_obj.login(sender, auth_code)
    smtp_obj.sendmail(sender, receivers, message.as_string())
    smtp_obj.quit()
    print('发送成功')
except Exception as e:
    print(str(e))
    print('发送失败')

2. 发送HTML邮件

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

# 配置发送方信息
sender = '发送方邮箱地址'
auth_code = '发送方授权码'

# 配置接收方信息
receivers = ['接收方邮箱地址'] 

# 配置邮件内容
html_content = '<p>邮件内容,HTML格式</p>'
message = MIMEText(html_content, 'html', 'utf-8')
message['From'] = Header('发送人昵称', 'utf-8')
message['To'] = Header('接收人昵称', 'utf-8')
message['Subject'] = Header('邮件主题', 'utf-8')

try:
    smtp_obj = smtplib.SMTP('smtp.发送方邮箱地址后缀', 25)
    smtp_obj.login(sender, auth_code)
    smtp_obj.sendmail(sender, receivers, message.as_string())
    smtp_obj.quit()
    print('发送成功')
except Exception as e:
    print(str(e))
    print('发送失败')

三、测试邮件发送

执行成功后,会输出“发送成功”。可以到邮箱查收邮件,如果已经成功发送,可以看到已经收到一封测试邮件。

四、注意事项

  • 注意发送方邮箱需要开启STMP服务,不同邮箱的开启方式可能不同,建议百度查询相关开启方法。
  • 使用import smtplib时可能会因为缺少相关模块而报错,可以通过执行pip install secure-smtplib解决。
  • 如果发送HTML邮件时内容有样式,需要手动将样式写入HTML内容中或者引入CSS文件,否则内容将会很丑。

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

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

相关文章

  • Python 实现opencv所使用的图片格式与 base64 转换

    下面我来详细讲解一下 Python 实现 OpenCV 所使用的图片格式与 base64 转换的完整攻略。 1. 将图片转成base64格式的字符串 首先,我们需要将图片转成 base64 格式的字符串。这可以通过使用 Python 的 base64 模块以及 OpenCV 库来实现。代码如下: import cv2 import base64 # Read…

    python 2023年5月18日
    00
  • Django JSonResponse对象的实现

    下面是关于“Django JsonResponse对象的实现”的详细攻略: 什么是Django JsonResponse对象 在Django中,JsonResponse是一个HTTP响应对象,它会将传入的Python数据转换为JSON数据并返回到客户端。JSON表示JavaScript对象表示法(JavaScript Object Notation),它是一…

    python 2023年6月3日
    00
  • python使用PyV8执行javascript代码示例分享

    下面我将针对“python使用PyV8执行javascript代码”的完整攻略,给出详细的示例说明。 1. 准备工作 在使用PyV8执行JavaScript之前,我们需要先安装PyV8,可以通过pip命令进行安装: pip install PyV8 安装完成后,我们需要准备一份JavaScript代码作为测试用例。 2. 使用PyV8执行JavaScript…

    python 2023年6月5日
    00
  • 一文解决Python切换版本问题

    一文解决Python切换版本问题 背景 在开发Python应用程序时,我们常常需要切换不同版本的Python环境,以满足不同的开发需求。 但是,每次手动切换Python环境非常麻烦。如果我们想要快速简便地切换Python环境,该怎么办呢? 解决方案 我们可以使用工具 pyenv 来管理Python环境。pyenv 可以方便地安装、切换和管理不同版本的Pyth…

    python 2023年5月14日
    00
  • Python推导式简单示例【列表推导式、字典推导式与集合推导式】

    Python推导式(Comprehension)是Python语言中的高级特性之一,可以简洁地表达出 for 循环语句创造的新容器。在Python中,主要有三种推导式,分别为列表推导式、字典推导式和集合推导式。本文将详细讲解这三种推导式的使用及示例说明。 列表推导式 列表推导式是Python中最常用的推导式,它可以用一个简洁的语句创建一个新列表。列表推导式的…

    python 2023年5月13日
    00
  • anaconda中安装的python环境中没有pip3的问题及解决

    问题: 在使用anaconda中安装的python环境时,有时会遇到没有pip3的情况,如何解决这个问题呢? 解决方法: 在anaconda中创建一个新的虚拟环境,再安装pip3 首先,打开anaconda prompt,输入以下命令,创建一个新的虚拟环境: conda create -n py35 python=3.5 其中,py35是虚拟环境的名称,可以…

    python 2023年5月14日
    00
  • Python要如何实现列表排序的几种方法

    下面是关于Python中列表排序的几种方法的详细攻略,包含两个示例说明。 列表排序方法 在Python中,列表是一种非常常用的类型,它提供了多种方法来对列表排序。下面是一些常用的列表排序方法: sort():对列表进行排序,可以定排序方式。 sorted():对列表进行排序,返回一个新的排序后的列表。 reverse():将列表中的元素反转。 下面是示例: …

    python 2023年5月13日
    00
  • 用Python写一个无界面的2048小游戏

    用Python写一个无界面的2048小游戏攻略 本攻略将详细地介绍如何使用Python来编写一个无界面的2048小游戏。下面将按照以下步骤来进行说明: 导入必要的库 定义游戏的核心函数 定义玩家输入函数 游戏运行主函数 1.导入必要的库 我们需要导入Random库,这个库可以用来随机生成2或4的方块,用于新生成方块时的随机选择。 import random …

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