Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python SMTP 发送邮件方法

Python SMTP 发送邮件方法

原创
作者头像
HoneyMoose
修改于 2021-03-24 02:43:45
修改于 2021-03-24 02:43:45
1.4K00
代码可运行
举报
文章被收录于专栏:CWIKIUSCWIKIUS
运行总次数:0
代码可运行

在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的。

通常使用邮件 API 的邮件发送服务都需要额外的收费。

因此我们再邮件测试发送的时候,可能需要的是 SMTP 邮件发送服务,通常这个服务是所有邮件服务商都会提供的。

要使用 SMTP 邮件发送服务,你需要有下面的信息才可以完成和测试:

  • SMTP 邮件服务器的地址,端口,登录用户名和登录用户密码
  • 发送和接收邮件的地址
  • 邮件的主题和正文

看起来是不是有点复杂,实际上,Python 提供了一个sendmail 的方法,这个方法在 smtplib 库中。

简单来说按照下面的步骤来做就可以了。

构建消息对象

在 Python 中有一个库为 MIMEMultipart,我们可以使用这个来构建消息对象。

要做的事情也比较简单,在定义 MIMEMultipart 对象后,你需要在这个对象中设置是谁发送的,发送给谁,主题是什么。

然后再在这个对象中插入正文,你可以插入 HTML 也可以插入纯文本。

为了让邮件比较美观,通常我们都会插入 HTML 的文本,很多时候为了插入更多的数据,我们还可能会用到模板。

发送邮件

在定义完成消息对象后,我们就可以发送邮件了。

在发送邮件之前,我们需要初始化 SMTP 对象,通常使用的是 smtplib.SMTP(smtpserver) 方法。

在这个方法中,我们会定义发送邮件服务器的地址和端口。

随后我们可能会调用一个 starttls 方法,这个方法是希望发送邮件服务器使用的是 TLS 模式。

随着技术的进步,和安全的考虑,很多邮件发送服务器都要求使用 TLS 模式来进行发送。

然后使用 server.login(email_user, email_passwd) 方法来登录服务器。

在上面的步骤完成后,我们就等于完成了你的 Python 代码和邮件服务器的通信了,你的代码在这个时候会拿到服务器的对象了,并且完成了对象的初始化了。

在这一步完成后就可以调用 sendmail 函数发送邮件。

当邮件发送完成后,不要忘记关闭邮件服务器的连接。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # Connect to the SMTP server
    server = smtplib.SMTP(smtpserver)
    server.starttls()
    server.login(email_user, email_passwd)
    sending_response = server.sendmail(from_addr, to_addr, message.as_string())
    print(sending_response)
    server.quit()

针对上面的发送服务,请参考下上面提供的伪代码。

完整的测试代码请参考 GitHub 上面的:python-tutorials/SendMailSMTP.py at master · cwiki-us-docs/python-tutorials · GitHub

要点

Python 发送邮件的服务还是比较简单的。

因为邮件发送服务都需要和第三方的邮件服务器进行通信,在这个通信的过程中,最重要的步骤就是先要获得邮件服务器的链接。

通常这个链接因为有防火墙,发送用户名限制,密码要求等等可能会导致连接获得失败而没有办法拿到连接服务器的对象。

针对遇到的情况具体问题具体分析就可以了。

遵循的原则步骤就是:

  1. 构建消息
  2. 获得服务器连接
  3. 发送邮件
  4. 关闭服务器连接

需要注意的是不要忘记关闭服务器连接。

https://www.ossez.com/t/python-smtp/13403

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python SMTP自动发送文本,HTML,附件邮件
1.发件人的邮件 比如:sender@163.com,sender@126.com,sender@qq.com,sender@gmal.com
用户8346838
2021/03/11
1.4K0
Python邮箱API发送邮件的方法和步骤
Python是一种功能强大的编程语言,可以用来发送电子邮件。使用Python发送邮件可以通过邮箱API来实现。aoksend将介绍使用Python邮箱API发送邮件的方法和步骤。
AokSend-API接口
2024/04/10
2820
python之SMTP发送邮件
假设我们自己的邮件地址是myemail@163.com,对方的邮件地址是friend@qq.com,我们在网易提供的163邮箱界面编写邮件,然后发送给对方。那么,这封邮件是怎么从我方发送到对方的呢?
菲宇
2019/06/13
1.4K0
九、Python发送QQ邮件(SMTP)
看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 有了上述基本概念,要编写程序来发送和接收邮件,本质上就是: 编写MUA把邮件发到MTA; 编写MUA从MDA上收邮件。 发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。 收邮件时,MUA和MDA使用的协议有两种:POP:Post Of
酱紫安
2018/04/16
2.5K0
Python基础教程(二十):SMTP发送邮件
Python的smtplib库提供了强大的功能,使得我们能够从脚本中直接发送电子邮件,这对于自动化工作流程、错误报告或是定期通知等场景极为有用。本文将详细介绍如何使用Python的smtplib库发送电子邮件,包括设置SMTP服务器、构造邮件内容、发送邮件等步骤,并通过具体案例加深理解。
用户11147438
2024/06/17
6030
python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
  本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理。在写脚本时,放到后台运行,想知道执行情况,会通过邮件、SMS(短信)、飞信、微信等方式通知管理员,用的最多的是邮件。在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮
北京-宏哥
2019/09/11
2.2K0
python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
python发送邮件(二)——smtplib模块和email模块
一、模块介绍 1、smtplib 模块(用于邮件的发送) ①理论解释 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]) 通过这个语句,可以向SMTP服务器发送指令,执行相关操作(如:登陆、发送邮件)。所有的参数都是可选的。 host:smtp服务器主机名 port:smtp服务的端口,默认是25;端口号可以省略。 但是使用25号端口有一个问题,就是保密性不够好,数据都是明文传输,没有加密。 现在一般都推荐使用SSL,Secure So
Elsa_阿尼
2021/07/27
5.2K0
python发送邮件(二)——smtplib模块和email模块
Python 脚本来自动发送每日电子邮件报告
有些 Python 安装可能没有 smtplib 和 email 模块。它们是 Python 标准库的一部分,不需要额外安装,但如果你想发送 HTML 报告或者添加其他依赖库,可以使用 pip 安装所需库。
未名编程
2024/10/12
2200
python3 发送邮件功能
发信邮箱是腾讯企业邮箱。开发环境 Windows7。 主要使用smtplib来实现发邮件的功能。 简单的发送邮件功能 # 发送邮件 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText def send_email(): fromaddr = "from1@your_email.com" # 你的发件邮箱 toaddr = "to1@your_e
AnRFDev
2021/02/01
3770
[快学Python3]SMTP发送邮件
概述 在本文中,主要介绍使用smtplib进行文本格式、HTML格式和带附件的邮件发送处理。 导入smtplib模块 import smtplib 关键函数说明 # 创建smtp对象 smtp = smtplib.SMTP([host [, port [, localhost]]] ) # 参数说明 # host: smtp服务地址,例如126邮箱的是:smtp.126.com # port: smtp服务端口 # localhost: 如果你的smtp服务在本机,则只需指定localhost即可 #
苦叶子
2018/04/09
4K0
[快学Python3]SMTP发送邮件
Python 发邮件
普通邮件 [root@localhost checksalt]# cat python_email.py  #!/usr/bin/python # -*- coding: utf-8 -*- import sys def smtp(title,file):     import smtplib     from email.mime.text import MIMEText     from email.header import Header           with open(file, 'r') 
py3study
2020/01/15
1.7K0
使用python发送邮件
发送邮件这个功能非常实用,比如你写了一个爬虫,可以通过邮件来接收程序异常或者任务完成的通知,再比如你搭了一个网站,别人只需留下他的邮箱,你就可以自动给他发送邮件。
谭小谭
2019/06/03
1.3K0
python发送邮件
文章目录 1. python发送邮件 1.1. 准备 1.1.1. smtplib 1.2. email 1.3. 普通文本邮件 1.4. 发送html邮件 1.5. 附件的发送 1.6. 将图片嵌入到正文信息中 python发送邮件 准备 python中发送邮件主要用的是smtplib和email两个模块,下面主要对这两个模块进行讲解 在讲解之前需要准备至少两个测试的邮箱,其中要在邮箱的设置中开启smtplib协议才可以进行发送和接受 smtplib smtplib.SMTP( [host
爱撒谎的男孩
2019/12/31
8010
Python3 SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
织幻妖
2021/01/20
1K0
Python3 SMTP发送邮件
31.1企业级开发进阶3.1:发送电子邮件
从古代的八百里加急,到现在的电子邮件,邮件的发展见证了上下五千年的发展史,这些当然是废话,只是要说说邮件的重要性。
大牧莫邪
2018/08/27
1.7K0
Python实现自动发送邮件(详解)
这点很关键,别忘了去开启SMTP, 别忘了去开启SMTP,否则邮件是无法发送成功的 。然后你还需要点击下面生成授权码,这个授权码才是使用Python发送邮件时的真正密码。
全栈程序员站长
2022/11/17
1.1K0
Python实现自动发送邮件(详解)
python 发送邮件例子
主要是服务器 有时候会产生coredump文件  ,然后因为脚本重启原因,服务器coredump产生后会重启
用户8983410
2021/11/03
4180
Python发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
青阳
2021/11/26
9060
Linux之python发送邮件
在服务器端开发时,会遇到通过邮件发送报警或结果的情形,本文对使用 python 发送附件的方法做一个总结,用到的库是 smtp 和 email 两个基础库
全栈程序员站长
2022/11/15
1.7K0
Python学习之使用Python发送邮
最近写的检查redis配置的脚本中需要增加一个发送邮件的功能,于是现学现用了python的邮件发送模块smtplib.可以参考《Python for Unix and Linux Administrator》一书
py3study
2020/01/15
4220
相关推荐
python SMTP自动发送文本,HTML,附件邮件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验