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批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整