精华内容
下载资源
问答
  • python发送邮件报表
  • 点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达利用Python发送邮件相信我们每个人都过邮箱,虽然其它社交聊天软件已经非常普及,并且这些社交软件大多都具有文件发送的...

    点击上方蓝色小字,关注“涛哥聊Python

    重磅干货,第一时间送达

    利用Python发送邮件

    相信我们每个人都用过邮箱,虽然其它社交聊天软件已经非常普及,并且这些社交软件大多都具有文件发送的功能,但很多时候我们仍然离不开使用邮箱。

    这是因为使用社交软件发送文件往往需要添加对方,而使用邮箱则不必担心这个问题。同时邮箱具有群发功能,并且支持HTML页面等,比较方便。并且如果我们使用的操作系统不一样的话,使用社交软件发送文件效果也不太好。

    本文手把手教你怎么利用Python发送邮件。

    邮件发送过程

    如果使用Windows没什么问题的话我们往往通过以下几个步骤给别人发送邮件。

    • 首先登录邮箱,这个肯定是第一步。

    • 然后确定我们发送邮件的账号,确定是群发还是单发。

    • 添加我们想要发送的内容,一般包括对方信息标题正文附件等等。

    • 添加好发送的内容之后往往需要确认一遍信息。

    • 点击发送,发送成功就完事。

    如果没什么问题的话经过这几个步骤就可以成功把邮件发出去了。

    实现过程

    条件准备:开通邮箱的SMTP功能

    以我用的163邮箱为例,登录邮箱后找到如图所示的POP3/SMTP/IMAP栏:

    点击之后到达如下页面:

    要注意的是图中的前两栏:

    • IMAP/SMTP服务

    • POP3/SMTP服务

    这两个服务我的邮箱显示已开启,不出意外的话你们的应该是关闭的。然后把这两个服务都开启即可。

    需要注意的是,在开启IMAP/SMTP服务之后后给你一个密匙,这个密匙只展示一次,所以一定要记好那个密匙,我们发送邮件的时候需要用到。

    当这两个服务都开启后,我们的条件就准备好了。

    模块介绍

    在Python中主要有两个和邮件发送相关的模块,分别为:

    • smtplib:这个模块是关于SMTP(简单邮件传输协议)的操作模块,在发送邮件的过程中使用这个模块来和你的发送账户的服务器建立通信。

    • email:这个模块用来编辑添加各种需要发送的内容,比如编辑正文添加附件等。

    实现步骤

    导入模块

    导入需要的模块:

    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.mime.image import MIMEImage
    

    第一个smtplib模块已经介绍过了。

    MIMEText是一个用来处理文本内容的模块,比如我们的正文一般是文本内容,我们也会上传文本附件等,它们可以用它来处理。

    MIMEImage是一个用来处理图像内容的模块,比如我们有时候会上传图片的附件等。

    MIMEMultipart是一个类,它代表了我们要发送的邮件对象,既然是邮件对象,我们知道邮件中包含了各部分如正文、附件等等,可以把MIMEMultipart理解为一个容器,其它的MIMETextMIMEImage等模块都包含在容器之中。

    那我们发送邮件的话就可以简单理解为先产生一个容器(邮件),然后把其它东西(正文、附件等)放进去,然后把这个容器发送出去就可以了。

    初始化信息

    要初始化的信息大概有如下几个:

    • 要与其建立通信关系的服务器:例如我们要使用163邮箱来给其它邮箱发送信息,那我们就需要给163邮箱下指令,让它按照我们的想法做事,因此要与163邮箱的服务器建立通信关系。

    • 登录邮箱的用户名和密匙:这个毋庸置疑,你要发送邮箱当然要登录呀,不过这里登录用到的password不再是你的邮箱密码,而是你开启IMAP/SMTP服务时给你的那串密匙

    • 接受你邮件的目标邮箱:这个可以单个邮箱也可以是一个邮箱列表,也就是说单发或者群发。

    这部分代码如下:

    # 设置建立通信的服务器信息
    email_host = 'stmp.163.com'
    # 设置登录邮箱的用户名和密匙
    email_user = '你的用户名'
    email_pass = '你的密匙'
    # 发送邮件的邮箱账户
    sender = '你的邮箱账户'    #这个其实就是你的用户名+@163.com
    # 接收邮件的邮箱账户
    receivers = ['邮箱账户1','邮箱账户2']    #这是一个邮箱列表,可以为1到多个
    

    创建邮件对象

    # 创建一个MIMEMultipart对象,这个对象就相当于一封邮件
    message = MIMEMultipart()
    # 设置发送方
    message['From'] = sender
    # 设置接收方
    message['To'] = ';'.join(receivers)
    # 设置邮件主题,也就是大标题,它是一个字符串
    message['Subject'] = '我喜欢你'
    

    邮件正文设置

    首先对于正文来讲,你可以选择两种格式:

    文本形式或者HTML格式

    文本形式实现如下所示:

    # 文本形式
    content = '你好,我是goldsunC,这是我发送给你的一封情书。'
    part1 = MIMEText(content,'plain','utf-8')
    
    # HTML格式
    # 因为HTML格式一般比较长,因此我们用读取文件的方法
    with open('goldsunC.html','r') as f:
        content = f.read()
    part1 = MIMEText(content,'html','utf-8')
    

    如上就是两种正文的实现方法,对应的part1就是我们准备好放入“容器”内的东西了。

    添加附件

    附件可以选择各种形式如txt文件、图片文件、压缩包文件等等。不过不管是哪种文件,它都是一个文件。哈哈哈是不是有点拗口,既然是文件,我们就需要把它进去。

    示例如下:

    # 添加一个txt附件
    with open('text.txt','r') as f:
        content1 = f.read()
    part1 = MIMEText(content1,'plain','utf-8')
    # 设置其附件类型,便于发送
    part1['Content-Type'] = 'application/octet-stream'
    part1['Content-Disposition'] = 'attachment;filename="text.txt"'
    
    # 添加一个图片附件
    with open('picture.jpg','rb') as f:
        content2 = f.read()
    part2 = MIMEImage(content2)
    # 设置附件类型
    part2['Content-Type'] = 'application/octet-stream'
    part2['Content-Disposition'] = 'attachment;filename="picture.jpg"'
    

    其它的附件发送形式类似,基本上只要文件名改改就行了。既然已经准备好了要放进容器内的东西,那现在就把它们放进去:

    message.attach(part1)
    message.attach(part2)
    message.attach(part3)
    

    只需要一个attach方法就可以把准备好的东西放进容器。

    这个时候一切准备就绪,现在我们就需要和服务器建立通信并发出指令了。

    发送邮件

    因为发送邮件的时候可能会因为各种各样的异常导致发送失败,例如邮箱把你的邮件当成垃圾邮件。因此我们就需要准备捕获这些异常:

    # 与服务器建立通信并发送邮件
    try:
        receivers = receivers + [sender]
        email_stmp = smtplib.SMTP()
        email_stmp.connect(mail_host,25)    #请求连接服务器
        email_stmp.login(mail_user,mail_pass)    #登录
        email_stmp.sendmail(sender,receivers,message.as_string())    #发送!
        print('success')
    except smtplib.SMTPException as e:
        print('error',e)
    

    注意这段代码中有一行:

    receivers = receivers + [sender]

    这不是把邮件接收方加上了发送方吗?为什么要给自己也发一份?

    原因是不加的话163邮箱会把你的邮件当作垃圾邮件,不过在发的时候给自己也发一份就没事儿了,别问我怎么知道的哈哈哈。

     • end • 

    今天给大家推荐一本机器学习、深度学习的人都应该听说过一本经典教材:《Pattern Recognition and Machine Learning》,中文译名《模式识别与机器学习》,简称 PRML。出自微软剑桥研究院实验室主任 Christopher Bishop 大神之手。对,就是豆瓣评分 9.5 的这本书。

    小编整理这本书了英文pdf,而且还有中文pdf,配套官方Matlab 版本Python版本代码,下载地址如下:

    资料获取方法

    1. 扫描下方二维码

    2. 后台回复关键词:PRML

    ????长按上方二维码 2 秒
    回复「PRML」即可获取资料
    
    展开全文
  •  1、使用Python发Text 邮件 import smtplib # 发送字符串的邮件 from email.mime.text import MIMEText # 设置服务器所需信息 fromEmailAddr = '件人邮箱地址' # 邮件发送方邮箱地址 password = 'email password...
  • 可以使用Python的email模块来实现带有附件的邮件发送。 SMTP (Simple Mail Transfer Protocol)邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送...
  • 主要介绍了python 实现的发送邮件模板,包含Python发送普通邮件、带附件及带图片邮件相关实现技巧,需要的朋友可以参考下
  • python群发邮件1....今天带大家学习如何用python发送邮件, 2.模块: 利用python发送邮件我们需要用到两个python的内置模块,smtplib和email,其中smtplib模块负责发送邮件,而email模块负责构造邮件内容

    1.用python发邮件

    今天带大家学习如何用python发送邮件,

    2.模块:

    利用python发送邮件我们需要用到两个python的内置模块,smtplibemail,其中smtplib模块负责发送邮件,而email模块负责构造邮件内容。
    在这里插入图片描述
    我们总结一下;

    import smtplib
    
    server = smtplib.SMTP()
    server.connect(host,port)
    server.login(uer_name,password)
    server.send_mail(from_addrs,to_addr,msg.as_string())
    server.quit()
    

    第一行,是引入smtplib模块。

    第三行,server是一个变量,smtplib.SMTP()是变量server的值。SMTP(Simple Mail Transfer Protocol)翻译过来是“简单邮件传输协议”的意思,SMTP 协议是由源服务器到目的地服务器传送邮件的一组规则。(可以简单理解为:我们需要通过SMTP指定一个服务器,这样才能把邮件送到另一个服务器。)

    第四行代码
    连接(connect)指定的服务器。
    host是指定连接的邮箱服务器,你可以指定服务器的域名。通过搜索“xx邮箱服务器地址”,就可以找到。

    port 是“端口”的意思。端口属于计算机网络知识里的内容,这里不详细讲。
    我们需要指定SMTP服务使用的端口号,一般情况下SMTP默认端口号为25,如果25行不通,你可以通过搜索或者去邮箱设置里面查看端口。当然也可以在网上搜一下。

    提醒!QQ 邮箱一般默认关闭SMTP服务,我们得先去开启它。请打开https://mail.qq.com/,登录你的邮箱。然后点击位于顶部的【设置】按钮,选择【账户设置】,然后下拉到这个位置。
    在这里插入图片描述
    就像上面的一样,把第一项服务打开。需要用密保手机发送短信,完成之后,QQ 邮箱会提供给你一个授权码,授权码的意思是,你可以不用QQ的网页邮箱或者邮箱客户端来登录,而是用邮箱账号+授权码获取邮箱服务器的内容。

    第五行代码,
    login是登录的意思,也就是登录你指定的服务器用的,需要输入两个参数:登录邮箱和授权码。

    第六行代码,
    是发送邮件用的,sendmail()方法需要三个参数:发件人,收件人和邮件内容
    这里的发件人from_addr与上面的username是一样的,都是你的登录邮箱,
    msg.as_string()是一个字符串类型:as_string()是将发送的信息msg变为字符串类型。

    email 模块:也就是用来写邮件内容的模块。这个内容可以是纯文本、HTML内容、图片、附件等多种形式。

    from email.mime.text import MIMEText  #纯文本,HTML
    from email.mime.image import MIMEImage #图片
    from email.mime.multipart import MIMEMultipart #多种组合内容
    
    

    email模块这里我们不过多讲解,可以自行查阅相关文档,

    好了,我们已经把smtplib这个模块讲完了,下面我们就要开始写代码了,

    3.目标拆解:

    3.1 版本1.0:给自己发送一句简单的话。

    
    import smtplib
    
    # 发信方的信息:发信邮箱,QQ邮箱授权码
    from_addr = 'xxx@qq.com'
    password = '你的授权码数字'
    
    # 收信方邮箱
    to_addr = 'xxx@qq.com'
    
    # 发信服务器
    smtp_server = 'smtp.qq.com'
    
    
    server = smtplib.SMTP_SSL()
    server.connect(smtp_server,465)
    
    server.login(from_addr, password)
    # 发送邮件
    server.sendmail(from_addr, to_addr, msg.as_string())
    # 关闭服务器
    server.quit()
    
    

    下面是完整代码,

    # smtplib 用于邮件的发信动作
    import smtplib
    # email 用于构建邮件内容
    from email.mime.text import MIMEText
    
    
    # 发信方的信息:发信邮箱,QQ 邮箱授权码
    from_addr = 'xxx@qq.com'
    password = '你的授权码数字'
    
    # 收信方邮箱
    to_addr = 'xxx@qq.com'
    
    # 发信服务器
    smtp_server = 'smtp.qq.com'
    
    # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
    msg = MIMEText('my first email send by python','plain','utf-8')
    
    
    server = smtplib.SMTP_SSL(smtp_server)
    server.connect(smtp_server,465)
    
    server.login(from_addr, password)
    
    server.sendmail(from_addr, to_addr, msg.as_string())
    # 关闭服务器
    server.quit()
    
    

    现在你应该可以收到信件了,他大概是这个样子

    在这里插入图片描述

    3.2 版本2.0:在版本1.0的基础上,增添邮件头(收发人和邮件标题)。

    邮件头(header)是这一块区域,包括主题、发件人、收件人等信息:
    在这里插入图片描述

    from email.header import Header
    
    msg['From'] = Header('张三')
    msg['To'] = Header('不练剑的游侠')
    msg['Subject'] = Header('python test')
    

    第一行代码,从email包引入Header()方法。Header()是用来构建邮件头的。

    标准邮件需要三个头部信息:From , To 和 Subject ,第三到五行代码就提供了这三个信息。

    这里我们可以自定义,比如发件人邮箱地址,收件人邮箱地址,主题“python test”。

    # smtplib 用于邮件的发信动作
    import smtplib
    # email 用于构建邮件内容
    from email.mime.text import MIMEText
    #构建邮件头
    from email.header import Header
    
    
    # 发信方的信息:发信邮箱,QQ 邮箱授权码
    from_addr = 'xxx@qq.com'
    password = '你的授权码数字'
    
    # 收信方邮箱
    to_addr = 'xxx@qq.com'
    
    # 发信服务器
    smtp_server = 'smtp.qq.com'
    
    # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
    msg = MIMEText('my first email send by python','plain','utf-8')
    msg['From'] = Header(张三)
    msg['To'] = Header(不练剑的游侠)
    msg['Subject'] = Header('python test')
    
    
    server = smtplib.SMTP_SSL(smtp_server)
    server.connect(smtp_server,465)
    
    server.login(from_addr, password)
    
    server.sendmail(from_addr, to_addr, msg.as_string())
    # 关闭服务器
    server.quit()
    

    这就是加了邮件头的效果
    在这里插入图片描述
    🆗,现在我们已经可以用python发送完整的邮件了,

    展开全文
  • python 发送邮件实例 文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from emailmimetext import MIMEText from emailheader import Header sender = '***' receiver = '***' subject = '...
  • 主要是不用自己搭建smtp服务器,个人比较方便(特别是在windows环境下搭smtp sever太麻烦了) 参考链接:https://blog.csdn.net/man_sion/article/details/70453148 以及...

    主要是不用自己搭建smtp服务器,个人用比较方便(特别是在windows环境下搭smtp sever太麻烦了)

    参考链接:https://blog.csdn.net/man_sion/article/details/70453148
    以及https://www.cnblogs.com/huiguniang/p/7150905.html

    最简单的直接上代码:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    mail_host = "smtp.qq.com"
    mail_user = "abcde@qq.com"
    auth = "xxxxxxx"  # 这个是自己qq邮箱的授权码
    sender = "abcde@qq.com"
    receivers = ["othermail@163.com"]
    
    message = MIMEText("hey you , nice to meet you", "plain", "utf-8")
    message['from'] = Header("abcde@qq.com", "utf-8")
    message['to'] = Header("othermail@163.com", "utf-8")
    subject = "this is the subject"
    message['subject'] = Header(subject, "utf-8")
    try:
        smtpObj = smtplib.SMTP_SSL()  # 建立smtp连接,qq邮箱必须用ssl边接,因此边接465端口
        smtpObj.connect(mail_host, 465)
        smtpObj.login(mail_user, auth)  # 登陆
        smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
        print("succeed sending")
        smtpObj.quit()
    except smtplib.SMTPException as err:
        print("can not send the email")
    

    直接封装成一个函数更好。

    成功收到邮件:
    在这里插入图片描述

    复杂一点的如添加附件、使用html格式等参考开头的链接2

    展开全文
  • 用python发邮件

    2019-03-25 21:12:35
    python集成了邮件功能,可以满足各种发邮件的需求,这里以SMTP协议和QQ邮箱为例

      python集成了邮件功能,可以满足各种发邮件的需求,这里以SMTP协议和QQ邮箱为例

    • 普通纯文字的邮件
    from email.mime.text import MIMEText
    from email.utils import formataddr
    import smtplib
    
    from_addr = "from@qq.com" #发件邮箱
    password = "password"	#密码
    to_addr = "接收邮箱"	
    smtp_server = "smtp.qq.com" #邮箱服务器
    
    msg = MIMEText("hello world", 'plain', 'utf-8')#plain表示纯文本 #html表示html邮件		
    #msg = MIMEText("<html><body><h1>Hello</h1></body></html>", 'html', 'utf-8') 
    msg['From'] = formataddr(("我是发件人哦", from_addr)) #formataddr用于构建邮件地址
    msg['To'] = formataddr(("你是收件人", to_addr))   #收件人
    msg['Subject'] = "小说更新啦"   #主题
    
    try:	
        server = smtplib.SMTP_SSL(smtp_server, 465) #SMTP_SSL才能登陆QQ邮箱
        server.set_debuglevel(1) #打印交互信息
        server.login(from_addr, password) #登陆
        server.sendmail(from_addr, [to_addr], msg.as_string()) #发送邮件
        server.quit() #退出
        print("成功发送")
    except smtplib.SMTPException as e:
        print('发送失败', e)
    
    
    • 收件人为多人时的设置方法
    to_addr = "1@qq.com, 2@qq.com, 3@qq.com"
    server.sendmail(from_addr, to_addr.split(','), msg.as_string()) 
    
    
    • 添加附件,并在邮件中显示图片
    from email.mime.application import MIMEApplication
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.utils import formataddr
    import smtplib
    
    from_addr = "from@qq.com" #发件邮箱
    password = "password"	#密码
    to_addr = "接收邮箱"	
    smtp_server = "smtp.qq.com" #邮箱服务器
    
    msg = MIMEMultipart() #创建实例
    
    msg['From'] = formataddr(("我是发件人哦", from_addr)) #formataddr用于构建邮件地址
    msg['To'] = formataddr(("你是收件人", to_addr))   #收件人
    msg['Subject'] = "小说更新啦"   #主题
    
    #添加附件 test.txt
    with open("test.txt", "rb") as f:
        txt = f.read()
    txt11 = MIMEApplication(txt) 
    txt11.add_header('Content-Disposition', 'attachment', filename="随便的名字")#filename就是收到邮件显示的名字
    txt11.add_header('Content-ID', '11txt')
    msg.attach(txt11)
    
    #添加图片test.png
    with open("png.txt", "rb") as f:
        pic = f.read()
    part = MIMEApplication(pic)
    part.add_header('Content-Disposition', 'attachment', filename="22.png")
    part.add_header('Content-ID', '22') #设置好ID,在html中引用就能显示在正文
    #part.add_header('X-Attachment-Id', '0')
    msg.attach(part)
    
    #添加html,在正文显示图片
    msg.attach(MIMEText('<html><body><h1>Hello</h1>' +
        '<p><img src="cid:22"></p>' +
        '</body></html>', 'html', 'utf-8'))
    
    try:	
        server = smtplib.SMTP_SSL(smtp_server, 465) #SMTP_SSL才能登陆QQ邮箱
        server.set_debuglevel(1) #打印交互信息
        server.login(from_addr, password) #登陆
        server.sendmail(from_addr, [to_addr], msg.as_string()) #发送邮件
        server.quit() #退出
        print("成功发送")
    except smtplib.SMTPException as e:
        print('发送失败', e)
    
    展开全文
  • Python发邮件代码

    2015-04-07 18:05:07
    Python发邮件代码
  • 第二种:使用脚本发送,比如:利用python内置对SMTP协议的支持,发送邮件。  介绍一下: SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件Python对SMTP支持有...
  • /usr/bin/env python3 # -*- coding: utf-8 -*- import smtplib from email.mime.text import MIMEText from email.utils import formataddr # 件人邮箱账号 my_sender='xx@xxx.com' # user登录邮箱的用户名,...
  • 本文将聊聊利用 Python 发送邮件的 3 种方式 2. 准备 以 126 邮箱为例,在编码之前,我们需要开启 SMTP 服务 然后,手动新增一个授权码 其中,账号、授权码和服务器地址用于连接登录邮箱服务器 3. 方式一:smtplib ...
  • 复制代码 代码如下:def sendmail(login={},mail={}): ”’\ @param login login[‘user’] login[‘passwd’] @param mail mail[‘to_addr’] mail[‘subject’] mail[‘content’] mail[‘attach’] ”’ from...
  • Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件
  • from smtplib import SMTP_SSL #是用来加密邮件内容的防止中间被人截获 from email.mime.text import MIMEText #用来构造邮件的正文 from email.mime.multipart import MIMEMultipart #这是邮件的主体 from email....
  • python发送带附件的邮件代码,大家可以看看哟。亲测无问题。
  • 主要为大家详细介绍了python3使用SMTP发送HTML格式的邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 再经博客了解,发现可以使用邮件SSL端口465进行发送邮件。 执行 一、开通QQ邮箱SMTP服务(已开启则忽略) 1.登陆QQ邮箱,点击设置 2.进入账户页面 3.页面滚动到最下面,看到开启服务,选择第一个POP3/SMTP服务最右边...
  • 1.Python hasattr() 函数 描述 hasattr() 函数用于判断...以下实例展示了 hasattr 的使用方法: #!/usr/bin/python # -*- coding: UTF-8 -*- class Coordinate:  x = 10  y = -5  z = 0 point1 = Coordinate() pr
  • 主要为大家详细介绍了python发送多人邮件没有展示收件人问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Python3使用SMTP发送带附件邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了python自动测试报告邮件功能的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 一、邮件发送示例 邮件发送示例 flask_email及smtplib原生邮件发送示例,适用于基于Flask框架开发,但是内部设置的定时任务发送邮件/或提供离线接口发送邮件操作 1.flask config配置 # QQ邮箱配置 MAIL_DEBUG = ...
  • python通过win32api调用oulook接口,进行邮件发送(带附件)。需要系统对应的包 https://sourceforge.net/projects/pywin32/files/pywin32/
  • 主要为大家详细介绍了Python3实现发送QQ邮件功能,html格式的qq邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python使用outlook发送带附件邮件
  • 该源码是针对特定网站,不是通用代码,但是具有一定的参考性,不想下载可以看我博客有相应的每个部分的代码块 http://blog.csdn.net/henni_719/article/details/60580815
  • 本篇文章小编为大家介绍了,基于python发送邮件的乱码问题的解决办法。需要的朋友参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,841
精华内容 32,736
关键字:

用python发送邮件

python 订阅