广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中有哪些发送邮件的方式
  • 704
分享到

Python中有哪些发送邮件的方式

2023-06-16 09:06:01 704人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

今天就跟大家聊聊有关 python中有哪些发送邮件的方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方式一:smtplibsmtplib是 Python 自带的依赖库,可以直接导入

今天就跟大家聊聊有关 python中有哪些发送邮件的方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

方式一:smtplib

smtplib是 Python 自带的依赖库,可以直接导入使用

首先,通过邮箱账号、授权码、邮箱服务器地址初始化一个 SMTP  实例,然后进行连接

def __init__(self):     # 初始化     self.smtp = smtplib.SMTP()      # 连接邮箱服务器地址     self.smtp.connect('smtp.126.com')      # 加入主题和附件,邮件体     self.email_body = MIMEMultipart('mixed')      # 发件人地址及授权码     self.email_from_username = '**@126.com'     self.email_from_passWord = '授权码'  # 登录 self.smtp.login(self.email_from_username, self.email_from_password)

然后,将收件人列表、邮件标题、邮件正文内容、附件路径及附件文件名加入到上面定义的邮件体中

def generate_email_body(self, email_to_list, email_title, email_content, attchment_path, files):     """     组成邮件体     :param email_to_list:收件人列表     :param email_title:邮件标题     :param email_content:邮件正文内容     :param attchment_path:附件的路径     :param files:附件文件名列表     :return:     """     self.email_body['Subject'] = email_title     self.email_body['From'] = self.email_from_username     self.email_body['To'] = ",".join(email_to_list)      for file in files:         file_path = attchment_path + '/' + file         if os.path.isfile(file_path):             # 构建一个附件对象             att = MIMEText(open(file_path, 'rb').read(), 'base64', 'utf-8')             att["Content-Type"] = 'application/octet-stream'             att.add_header("Content-Disposition", "attachment", filename=("gbk", "", file))             self.email_body.attach(att)      text_plain = MIMEText(email_content, 'plain', 'utf-8')     self.email_body.attach(text_plain)

接着,就可以使用 SMTP 实例对象,将邮件发送出去

# 收件人列表 email_to_list = ['收件人1地址','收件人2地址']  # 发送邮件 # 注意:此处必须同时指定发件人与收件人,否则会当作垃圾邮件处理掉 self.smtp.sendmail(self.email_from_username, email_to_list, self.email_body.as_string())

邮件发送完毕之后,退出服务即可

def exit(self):     """     退出服务     :return:     """     self.smtp.quit()

4. 方式二:zmail

Zmail项目创建目的是,使邮件处理变得更简单

使用 Zmail 发送接收邮件方便快捷,不需要手动添加服务器地址、端口以及适合的协议,可以轻松创建 MIME 对象和头文件

注意:Zmail 仅支持 python3,不支持 Python2

首先,安装依赖库

# 安装依赖库 pip3 install zmail

然后,使用邮箱账号、授权码创建一个邮箱服务对象

class ZMailObject(object):      def __init__(self):         # 邮箱账号         self.username = '**@126.com'          # 邮箱授权码         self.authorization_code = '授权码'          # 构建一个邮箱服务对象         self.server = zmail.server(self.username, self.authorization_code)

接着,将邮件主题、邮件内容、包含的附件路径加入到一个字典中,组成邮件主体

# 邮件主体 mail_body = {         'subject': '测试报告',         'content_text': '这是一个测试报告',  # 纯文本或者html内容         'attachments': ['./attachments/report.png'], }

最后,将调用send_mail()函数,将邮件发送出去即可

# 收件人 # 可以指定一个人,字符串;也可以是多个人,列表 mail_to = "收件人1"  # 发送邮件 self.server.send_mail(mail_to, mail_body)

5. 方式三:yagmail

yagmail 只需要几行代码,就能实现发送邮件的功能

相比 zmail,yagmail 实现发送邮件的方式更加简洁优雅

首先,安装依赖库

# 安装依赖库 pip3 install yagmail

然后,通过账号、授权码和服务器地址连接邮箱服务器,返回一个服务对象

import yagmail  # 连接服务器 # 用户名、授权码、服务器地址 yag_server = yagmail.SMTP(user='**@126.com', password='授权码', host='smtp.126.com')

接着,通过 send() 函数,将邮件发送出去

# 发送对象列表 email_to = ['**@qq.com', ] email_title = '测试报告' email_content = "这是测试报告的具体内容" # 附件列表 email_attachments = ['./attachments/report.png', ]  # 发送邮件 yag_server.send(email_to, email_title, email_content, email_attachments)

邮件发送完毕之后,关闭连接即可

# 关闭连接 yag_server.close()

看完上述内容,你们对 Python中有哪些发送邮件的方式有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网Python频道,感谢大家的支持。

--结束END--

本文标题: Python中有哪些发送邮件的方式

本文链接: https://www.lsjlt.com/news/283042.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中有哪些发送邮件的方式
    今天就跟大家聊聊有关 Python中有哪些发送邮件的方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方式一:smtplibsmtplib是 Python 自带的依赖库,可以直接导入...
    99+
    2023-06-16
  • Asp.net发送邮件的方法有哪些
    在ASP.NET中,发送邮件的方法有以下几种:1. 使用SMTP客户端类:可以使用`System.Net.Mail.SmtpClie...
    99+
    2023-08-12
    Asp.net
  • Linux下发送邮件的方法有哪些
    小编给大家分享一下Linux下发送邮件的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux 命令行发送邮件的 5 种方法当你需要在 shell 脚...
    99+
    2023-06-25
  • Spring Boot邮件发送的的方法有哪些
    这篇文章主要介绍“Spring Boot邮件发送的的方法有哪些”,在日常操作中,相信很多人在Spring Boot邮件发送的的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring Boot邮件...
    99+
    2023-06-16
  • SpringBoot实现定时发送邮件的方法有哪些
    这篇“SpringBoot实现定时发送邮件的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot实现...
    99+
    2023-07-05
  • python实现发送邮件的方法
    这篇文章将为大家详细讲解有关python实现发送邮件的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.设置邮箱,如下图所示2.设置过程如下图所示:设置完成后,添加如下代码:# coding...
    99+
    2023-06-06
  • Linux下发送电子邮件的命令有哪些
    本篇内容主要讲解“Linux下发送电子邮件的命令有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下发送电子邮件的命令有哪些”吧!今天的文章里我们会讲到一些使用Linux命令行工具来...
    99+
    2023-06-13
  • Python基于SMTP发送邮件的方法
    目录构建消息对象发送邮件要点在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的。 通常使用邮件 ...
    99+
    2022-11-11
  • 如何使用ActiveMQ中间件方式发送邮件
    前言 在大型互联网公司中,一般都会搭建内部的消息服务平台,处理公司内部的各种消息服务,比如:发送邮件、发送短信、微信推送等,公司内部消息平台再去调用第三发消息平台。消息服务平台的接...
    99+
    2022-11-12
  • WordPress中发送HTML邮件的方法
    方法一,用filter发送HTML邮件 发邮件用的函数是wp_mail(),wp_mail()则基于强大的邮件类phpMailer,所以发送HTML格式是小菜一碟。只是WordPress默认以纯文本格式发送邮件,我们收到...
    99+
    2022-06-12
    HTML邮件
  • kafka发送消息的方式有哪些
    今天小编给大家分享一下kafka发送消息的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。kafka发送消息的方式p...
    99+
    2023-07-05
  • 最全总结!聊聊 Python 发送邮件的几种方式
    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python 内置了对 SMTP 的支持,可以发送纯文本、富文本、HTML 等格式的邮件 本文将聊聊利用 Pytho...
    99+
    2023-09-23
    python windows 开发语言 服务器 excel 学习 python开发
  • 如何用Python发送带有附件的邮件
    如何用Python发送带有附件的邮件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python 发送带有附件的邮件条件使用from django.core.ma...
    99+
    2023-06-02
  • python发送邮件的几种常用方法
    第一种是最常见的,smtp发送 import smtplibimport sysimport tracebackfrom email.mime.text import MIMETextfrom email.mime.multipart im...
    99+
    2023-09-02
    python 开发语言
  • 使用Python发送各种形式的邮件的方法汇总
    我们平时需要使用 Python 发送各类邮件,这个需求怎么来实现?答案其实很简单,smtplib 和 email 库可以帮忙实现这个需求。smtplib 和 email 的组合可以用来发送各类邮件:普通文本...
    99+
    2022-06-04
    各种形式 邮件 方法
  • JAVA发送HTTP请求的方式有哪些
    这篇文章主要介绍“JAVA发送HTTP请求的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA发送HTTP请求的方式有哪些”文章能帮助大家解决问题。1. HttpURLConnecti...
    99+
    2023-07-05
  • 在JAVA中发送HTTP请求的方式有哪些
    在JAVA中发送HTTP请求的方式有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式...
    99+
    2023-06-06
  • 详解python发送各类邮件的主要方法
    python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点。 一、相关模块介绍 发送邮件主要用到了smtplib和email两个模块...
    99+
    2022-06-04
    详解 邮件 方法
  • Python实现邮件发送功能的方法详解
    目录利用 python 发送普通邮件认识发送邮件流程认识邮件协议smtplib 模块email 包发送邮件小案例发送邮件的避坑总结邮件自动化篇章所需的新模块: smtplib 邮件协...
    99+
    2022-11-11
  • Python中Django发送带图片和附件的邮件
    最近需要做集团的SRC系统。暂无安全研发,所以只能找我这个小菜兼职开发。系统使用Django框架,在整个过程中,有许多奇特的需求。在某项需求中,需要给厂商用户发送富文本邮件,漏洞详情,这个折腾了一下,感觉略...
    99+
    2022-06-04
    附件 邮件 图片
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作