百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python如何发送邮件

off999 2024-12-13 15:35 17 浏览 0 评论

一、Python发送邮件应用到的库

python发送邮件很简单,主要用到以下几个模块(库):

1、smtplib (smtp协议库)

2、email.mime.text(邮件处理库,主要应用其MIMEText类)

3、email.utils(邮件处理库,主要应用其formataddr类)

二、代码分析

注:发送邮件(需开启邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务:开启前2个即可)

如何开启:

1、首先导入以上的模块(库)

#  导入模块
import  smtplib
from email.mime.text import MIMEText
from  email.utils  import  formataddr

2、定义发件人、收件人账号信息

my_sender = '123456789@qq.com'     # 发件人邮箱账号
my_pass = '***********'                         # 发件人邮箱密码
my_user = '123456789@qq.com'         # 收件人邮箱账号

3、定义一个函数,用于发送邮件

def send_mail():
    result = True
    try:
        msg = MIMEText('hello, Jesion, you have success','plain','utf-8')     #  发送的内容,编码格式
        msg['From'] = formataddr(["我爱Python",my_sender])                     # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To'] = formataddr(["我爱Python",my_user])                             # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject'] = "这是用Python发送的测试邮件"                               # 邮件的主题,也可以说是标题
 
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)           # 发件人邮箱中的SMTP服务器,端口是465
        server.login(my_sender, my_pass)                                   # 括号中对应的是发件人邮箱账号、邮箱密码
        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()                                          # 关闭连接
    except Exception:                                     # 如果 try 中的语句没有执行,则会执行下面的 result=False
        result = False
    return result

4、执行函数发送邮件并验证是否发送成功

result = send_mail()     #  执行函数发送邮件
if result:
    print("邮件发送成功")
else:
    print("邮件发送失败")

5、完整代码

#发送邮件(需开启邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务:开启前2个即可)

# 导入模块
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
my_sender = '123456789@qq.com'    # 发件人邮箱账号
my_pass = '***********'                        # 发件人邮箱密码
my_user = '123456789@qq.com'        # 收件人邮箱账号,我这边发送给自己

def send_mail():
    result = True
    try:
        msg = MIMEText('hello, Jesion, you have success','plain','utf-8')
        msg['From'] = formataddr(["我爱Python",my_sender])                     # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To'] = formataddr(["我爱Python",my_user])                             # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject'] = "这是用Python发送的测试邮件"                               # 邮件的主题,也可以说是标题
 
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)            # 发件人邮箱中的SMTP服务器,端口是465
        server.login(my_sender, my_pass)                                    # 括号中对应的是发件人邮箱账号、邮箱密码
        server.sendmail(my_sender,[my_user,],msg.as_string())   # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()                                              # 关闭连接
    except Exception:                                         # 如果 try 中的语句没有执行,则会执行下面的 result=False
        result = False
    return result

result = send_mail()
if result:
    print("邮件发送成功")
else:
    print("邮件发送失败")

6、代码执行结果


备注:以上发送的是文本格式的邮件,还可以发送带附件的邮件,如文件、图片、视频等,具体参考:python发送邮件(带附件)

相关推荐

zabbix 7.0 安装部署 centos stream9

关闭selinux和防火墙setenforce0vim/etc/selinux/config设置为disabledsystemctlstopfirewalldsystemctlstop...

Ubuntu 操作系统常用命令详解_ubuntu各种命令

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

秒变万能家庭服务器!斐讯N1 armbian安装指南

一直以来,我都想配置一台小型服务器放在家里玩一玩,但是x86架构的主机体积大功耗高,价格也不低。而树莓派的话,价格便宜一点,性能对于轻度使用也基本够用。可是树莓派仍然要两三百块钱,感觉还是有点贵。于是...

浏览器里跑Windows XP?开发者硬核复现,免安装还能玩扫雷、纸牌接龙,网友直呼:爷青回!

整理|苏宓出品|CSDN(ID:CSDNnews)你还记得上一次用WindowsXP是什么时候吗?这个诞生于2001年的操作系统,曾因操作简单、性能提升、兼容性好,迅速成为一代人...

阿里云安装飞牛教程,这次待机0功耗了

把照片、聊天记录、工作文件一股脑儿塞进网盘,却突然发现账号被封、文件被删,那一刻像被人扒光了扔大街上。昨晚,我在阿里云花29块买了台最便宜的VPS,折腾三小时,把Nextcloud装进这台小机器,手机...

【入门】【失败】Linux下mysql-8.0.22-linux-x64.tar.gz 安装

因为系统环境的一些问题,最后安装失败这篇文章只保留过程一些笔记做参考创建MySQL用户和组sudogroupaddmysqlsudouseradd-r-gmysql-s/bin/...

Jenkins 安装与部署完整指南_jenkins安装与配置windows

Jenkins安装与部署完整指南Jenkins是一款开源的自动化服务器,常用于持续集成(CI)和持续交付(CD)。本文将介绍在Linux、Windows、macOS三大平台上的安装与部署步骤,...

Nacos 安装教程_nacos安装部署

Nacos安装与生产部署增强版教程(Windows&Linux)Nacos是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,支持几乎所有主流类型服务的发现、配置和管理。加入了版本匹配...

Linux开机自启服务完全指南:3步搞定系统服务管理器配置

为什么需要配置开机自启?想象一下:电商服务器重启后,MySQL和Nginx没自动启动,整个网站瘫痪!这就是为什么开机自启是Linux运维的必备技能。自启服务能确保核心程序在系统启动时自动运行,避免人工...

centos nginx docker-compose安装

一、nginx及docker文件准备1、docker-compose.ymlversion:'3'services:nginx:restart:always...

Nginx合集-高可用(Keepalived)_高可用 nginx

Keepalived简介Keepalived是Linux下一个轻量级别的高可用解决方案。高可用:广义来讲,是指整个系统的高可用行;狭义的来讲就是主机的冗余和接管。它与HeartBeat实现类似的功能,...

Nginx 笔记_nginx最全教程

gcc#可能需要安装C++yum-yinstallgcc-c++installnginxbybashcd/usr/local/src##@seehttp://nginx...

JAVA面试|nginx如何解决跨域问题_nginx解决跨域问题原理

核心思想:跨域问题是浏览器的安全限制,不是服务器本身拒绝通信。Nginx作为强大的反向代理服务器,可以通过在响应中添加特定的HTTP头信息(CORS头),告诉浏览器:“这个跨域请求是我允许的,你可...

Nginx主从架构详解(图文全面总结)

Nginx是大型架构的必备技能,下面我重点详解Nginx主从架构@mikechen文章来源:mikechen.ccNginx主从在大规模Web应用和高可用部署中,Nginx作为高性能反向代理与负...

Nginx动静分离详解(原理+配置+实战)

Nginx动静分离是一种常见的Web服务优化技术,Nginx动静分离可以更好的提升性能@mikechen文章来源:mikechen.ccNginx动静分离动静分离,顾名思义,就是将Web应用中...

取消回复欢迎 发表评论: