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

相关文章

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C++学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数? void swap(int& x, int& y){int tmp = x;x = y;y = tmp;} 相信大家很快就能写出上面这段代码,但是如果要求这个交换函数支持字符型

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

ps基础入门

1.基础      1.1新建文件      1.2创建指定形状      1.4移动工具          1.41移动画布中的任意元素          1.42移动画布          1.43修改画布大小          1.44修改图像大小      1.5框选工具      1.6矩形工具      1.7图层          1.71图层颜色修改          1

C++入门01

1、.h和.cpp 源文件 (.cpp)源文件是C++程序的实际实现代码文件,其中包含了具体的函数和类的定义、实现以及其他相关的代码。主要特点如下:实现代码: 源文件中包含了函数、类的具体实现代码,用于实现程序的功能。编译单元: 源文件通常是一个编译单元,即单独编译的基本单位。每个源文件都会经过编译器的处理,生成对应的目标文件。包含头文件: 源文件可以通过#include指令引入头文件,以使

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python