python邮件入门,通过互联网服务器发送邮件(foxmail-qq代发),SMTP/POP3服务

本文主要是介绍python邮件入门,通过互联网服务器发送邮件(foxmail-qq代发),SMTP/POP3服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、python邮件入门

1.SMTP概述

SMTP(Simple Mail Transfer Protocol) 简单邮件传输协议,使用TCP协议25端口

SMTP是一组用于由源地址到目的地址传送邮件的规则,由它来控制信息的中转方式

python的smtplib模块提供了一种途径发送电子邮件,它对smtp协议进行了简单的封装

 

2.设置邮件格式

标准邮件需要三个头部信息

From:发件人

To:收件人

Subject:主题

>>> message=MIMEText('python 邮件发送测试...','plain','utf-8')
>>> message['From']=Header('zhangsan','utf-8')
>>> message['To']=Header('lisi','utf-8')
>>> message['Subject']=Header('Python SMTP 邮件测试','utf-8')

 

3.连接邮件服务器

连接服务器分为连接本地服务器和外部服务器(联网),连本地不需要身份验证

>>> smtp_obj=smtplib.SMTP('localhost')                                    #连接本地服务器

连接外部服务器:

>>> smtp_obj = smtplib.SMTP()                                                               #使用SMTP协议
>>> smtp_obj.connect(mail_host)                                                            #连接服务器
>>> smtp_obj.login(mail_user, mail_pwd)                                                #登录服务器,需输入登录账号和密码

 

4.sendmail方法

PythonSMTP对象使用sendmial方法发送邮件

SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options])

sendmail方法有三个必须参数:

-收件人

-发件人

-消息主体msg,msg是字符串,表示邮件

>>> smtp_obj=smtplib.SMTP('localhost')
>>> smtp_obj.sendmail(sender,receivers,message.as_string())
{}

 

5.发送一封邮件

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

Python SMTP 对象使用 sendmail 方法发送邮件:

  1. >>> import smtplib
  2. >>> from email.mime.text import MIMEText
  3. >>> from email.header import Header
  4.  
  5. #邮件正文有三个参数:第一个为文本内容,第二个设置文本格式plain,第三个utf-8设置编码保证多语言兼容性
  6. >>>message = MIMEText('Python邮件发送测试\n', 'plain', 'utf8')   
  7.  
  8. 标准邮件需要三个头部信息: From, To, 和 Subject
  9. #发送者信息
  10. >>>message['From'] = Header('root@localhost', 'utf8')    
  11. #接收者信息
  12. >>>message['To'] = Header('zhangsan@localhost', 'utf8')
  13. #主题信息
  14. >>>message['Subject'] = Header('测试邮件', 'utf8')
  15.  
  16. >>> sender='root@localhost.com'                                         #发送者
  17. >>> receivers=['lisi@localhost','zhangsan@localhost']         #接收者
  18. >>> smtp_obj=smtplib.SMTP('localhost')                              #连接本地服务器
  19. # smtplib负责发送邮件
  20. >>> smtp_obj.sendmail(sender,receivers,message.as_string())

参数说明:

sender: 邮件发送者地址。

receivers: 字符串列表,邮件发送地址。

message.as_string(): 发送消息 ,str模式

由于可以一次发给多个人,所以recives传入一个列表,邮件正文是一个str,as_string()把MIMEText对象变成str。

执行脚本:

  1. [root@ localhost day12]# python3 send_mail.py
  2. [root@ localhost day12]# mail –u zhangsan
  3. Heirloom Mail version 12.5 7/5/10. Type ? for help.
  4. “/var/mail/bob”: 1 message 1 new
  5. >N 1 =?utf8?q?root=4Oloca Mon Jul 30 09:36 18?663 ‘’
  6. Python邮件发送测试
  7. &

 

二、案例:通过互联网服务器发送邮件(foxmail代发)

 

步骤一:环境准备

使用SMTP协议发送的邮件,需要先查看您的发件人邮箱是否有开启SMTP协议,如没有需要开启,测试使用的是qq.com的邮箱作为发信人邮箱,开启SMTP协议如下

 

1. 先登录到qq.com邮箱,如图-1所示:

 

2.点击设置,开启POP3/SMTP服务

需要手机验证

 

验证后收到授权码

 

3.注册foxmail邮箱账号

下载foxmai,网上可以下载

 

4.登录foxmail

配置账号信息,点击新建

选择qq邮箱

输入刚才注册的foxmail登录账号和授权码

确认一下收件服务器和发件服务器,这里的重点是发件服务器,我们等下写的python就是借用smtp.qq.com服务器来发送邮件

 

5.编写python脚本

这里给出样板,信息填自己的

#!/usr/bin/env python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header

mail_host='smtp.qq.com'                                                #使用qq服务器
mail_user='xxxxxxxxxxx@foxmail.com'                          #发件账号,填你刚才注册的foxmail邮箱账号
mail_pwd='xxxxxxxxxxxxx'                                             #授权码,也是刚才注册的

message=MIMEText('Python邮件测试','plain','utf8')                             #编写文章内容
message['From']=Header('xxxxxxxxxxx@foxmail.com','utf8')              #发送者
message['To']=Header('xxxxxxxxxxx@foxmail.com','utf8')                   #被发送者
message['Subject']=Header('python Mail Test','utf8')                            #邮件标题

sender='xxxxxxxxxxx@foxmail.com'                                                  #发送者,填你自己
receivers='xxxxxxxxxxx@qq.com'                                                      #被发送者,填你想法的账号

smtp_obj = smtplib.SMTP()                                                               #使用SMTP协议
smtp_obj.connect(mail_host)                                                            #连接服务器
smtp_obj.login(mail_user, mail_pwd)                                                #登录服务器

smtp_obj.sendmail(sender, receivers, message.as_string())             #发送邮件

 

6.执行脚本

  1. [root@ localhost /]# python3 mail_client.py

 

7.查看qq邮箱(被发送者)

收到邮件

由foxmail代发

 

后记:

这个案例中我是用的qq邮件登录的foxmail邮件服务器(下面简称fm),fm是一个很强大的软件,你可以使用163,网易,雅虎等邮箱登录fm,fm也可以作为一个代发邮件的服务器,支持SMTP/POP3协议。配置方式参考上面案例。

 

在真实的工作环境中,我们可以将这个脚本作为监控器触发的动作,即报警后自动向我们的邮箱发送报警信息,这样我们就可以随时接受到服务器异常的消息,方便我们的办公 

这篇关于python邮件入门,通过互联网服务器发送邮件(foxmail-qq代发),SMTP/POP3服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313427

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以