Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >EDM营销算法:python自动批量发邮件

EDM营销算法:python自动批量发邮件

作者头像
机器学习和大数据挖掘
发布于 2019-07-02 02:41:59
发布于 2019-07-02 02:41:59
3.2K10
代码可运行
举报
文章被收录于专栏:数据挖掘数据挖掘
运行总次数:0
代码可运行

EDM营销:全称Email Direct Marketing,即电子邮件营销。企业可以通过使用EDM软件向目标客户发送EDM邮件,建立同目标顾客的沟通渠道,向其直接传达相关信息,用来促进销售。EDM软件有多种用途,可以发送电子广告、产品信息、销售信息、市场调查、市场推广活动信息等。

身为一名会修电脑的数据分析师,总是要想着怎样把公司电脑搞坏,顺便给公司创造点价值

刚好python有个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import smtplib

因此,就用python3.4来写这个代码

首先一个最简单的邮件发送的代码是这样子的,定义一个函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 # 协议服务器地址、发件方邮箱前缀、发件方邮箱密码、收件方邮箱、信件标题、内容
2 def send_email(SMTP_host, from_account, from_passwd, to_account, subject, content):
3 def send_email(协议服务器, 发件人邮箱, 发件人邮箱密码, 收件人邮箱, 邮件标题, 邮件内容):

解析服务器地址,每个邮箱的服务器地址都不一样,一定要根据发件方的邮箱类型来选择服务器地址例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 协议服务器地址
# smtp.163.com 
# smtp.21cn.com
# smtp.sina.com.cn
# smtp.sohu.com
# smtp.126.com
# smtp.qq.com 

服务器的的端口也不一样,一般都是端口25,只有qq的是465或者587

加载服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
email_client = smtplib.SMTP(SMTP_host,25)

账号密码登录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
email_client.login(from_account, from_passwd)

将邮件的文本信息搞进来,换点编码,中间的'plain'是文本,中间可以是html,那么你的内容content就要写成网页形式<b>...</b>:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msg = MIMEText(content, 'plain', 'utf-8')

邮件寄出去不是还有谁谁谁寄的么,就是下面的这个,标题、发件人、收件人,收发邮件人名的格式啊,搞进去:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from_title = from_account + "<" + from_account + "@" + from_postfix + ">"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = from_account
msg['To'] = to_account

寄出去:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    email_client.sendmail(from_account, to_account, msg.as_string())

    email_client.quit()

记得关闭邮件

这样子一个很简单的邮件发送系统就出来了

看看主函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if __name__ == "__main__":
    send_email("smtp.163.com","xxxxx@163.com","password","xxxxx@126.com","test","hellow")

完整的简单发邮件代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 import smtplib
 2 from email.mime.text import MIMEText
 3 from email.header import Header
 4 
 5 
 6 def send_email(SMTP_host, from_account, from_passwd, to_account, subject, content):
 7     email_client = smtplib.SMTP(SMTP_host)
 8     email_client.login(from_account, from_passwd)
 9     # create msg
10     msg = MIMEText(content, 'plain', 'utf-8')
11     msg['Subject'] = Header(subject, 'utf-8')  # subject
12     msg['From'] = from_account
13     msg['To'] = to_account
14     email_client.sendmail(from_account, to_account, msg.as_string())
15 
16     email_client.quit()
17 
18 if __name__ == "__main__":
19     send_email("smtp.163.com","xxxxx@163.com","password","xxxxx@126.com","test","hellow")

--------------------------------------我是快乐的分割线--------------------------------------

上面的那个发邮件的是很简单很简单的,没有批量,没有详细解说,我是不会满意这样的东西,那么,看我神一样的代码

首先,你们要注意到,qq邮箱发邮件有一个很重要的BUG

如果没有解决那么QQ邮箱无法登陆

为什么一定需要QQ邮箱呢?

因为!

用这个服务器QQ只接受来自QQ的邮件,163以及其他的他都不接受!!!

所以一定要用QQ邮箱

打开QQ邮箱--设置--账户

一定要开启下面那两个服务,因为开启这两个服务才能使用QQ邮箱发

要发短信的,发完点击我已发送,QQ会给一个16位的字母给你

注意注意注意注意注意注意注意注意注意注意,这个才是QQ邮箱发邮件的密码密码密码密码密码密码密码密码密码密码密码密码密码密码密码密码密码密码密码

好,得到这个密码后,我再将其他163的邮箱放进来

因为单个邮箱每天上限200个,发200肯定被封,你不希望自己的邮箱被封吧

所以要多个邮箱发

而且是发给多个用户,那么新建两个excel表格,打开读取里面的账号密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 from openpyxl import load_workbook
 2 try:
 3             # 读取发件人邮箱
 4             wb = load_workbook(filename=r'../fromemail.xlsx')  ##读取路径
 5             ws = wb.get_sheet_by_name("Sheet1")  ##读取名字为Sheet1的sheet表
 6 
 7             # 建立邮箱账号密码数组
 8             fromemail_qqaccount = []
 9             fromemail_qqpasswd = []
10             fromemail_othaccount = []
11             fromemail_othpasswd = []
12 
13             for row_A in range(2, 100):  ## 遍历第2行到10014                 qqacc = ws.cell(row=row_A, column=1).value  ## 遍历第2行到100行,第115                 qqpas = ws.cell(row=row_A, column=2).value  ## 遍历第2行到100行,第216                 othac = ws.cell(row=row_A, column=3).value  ## 遍历第2行到100行,第317                 othpa = ws.cell(row=row_A, column=4).value  ## 遍历第2行到100行,第418                 if qqacc:
19                     fromemail_qqaccount.append(qqacc)
20                     fromemail_qqpasswd.append(qqpas)
21                 if othac:
22                     fromemail_othaccount.append(othac)
23                     fromemail_othpasswd.append(othpa)
24 
25                 # 判断是否有qq邮箱,如果没有则退出程序
26                 if len(fromemail_qqaccount) == 0:
27                     input('没有qq邮箱或者qq邮箱写入的格式不对,请插入或改正...')
28                     exit()
29 
30             # 读取收件人邮箱
31             wb = load_workbook(filename=r'../toemail.xlsx')  ##读取路径
32             ws = wb.get_sheet_by_name("Sheet1")  ##读取名字为Sheet1的sheet表
33 
34             # 建立收件人邮箱账号数组
35             toemail_account = []
36             for row_B in range(2, 10000):  ## 遍历第2行到1000037                 emaacc = ws.cell(row=row_B, column=1).value  ## 遍历第2行到10000行,第138                 if emaacc:
39                     toemail_account.append(emaacc)
40         except:
41             input('写入excel的格式不对,请查证...')
42             exit()

我的excel格式是这样子的:

这里就不解释啦,读取excel我以前的博文就有详细解释

那么内容content我也写进了txt记事本里面:

第一行是标题,后面是内容代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1         try:
 2             file = open('../content.txt', 'r')
 3             data = file.read().split('\n')
 4             subject = '标题'
 5             content = '正文'
 6             if data[0] != '':
 7                 for j in range(0, len(data)):
 8                     if j == 0:
 9                         # 邮件标题
10                         subject = data[0]
11                     elif j > 0:
12                         if j == 1:
13                             # 邮件正文
14                             content = data[1]
15                         if j > 1:
16                             content = str(content) + '\n' + data[j]
17             else:
18                 pass
19             file.close()
20         except:
21             input('写入txt的格式不对,请改正...')
22             exit()

如果标题和内容是空的,那么我就自己给一个标题和内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            subject = '标题'
            content = '正文'

因为涉及到换行写入,所以有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
content = str(content) + '\n' + data[j]

好滴,这些东西统统加进去,感觉这个EDM系统做得不错了

但是但是,呵呵哒,突然发现登录的时候直接写邮箱会出现错误,也就是这样子:,但是还有,我要发图片怎么办

我把图片存到pic文件夹

发图片只能是用html来写,也就是我前文写到的html格式

那么函数要写成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 #登录之前不变...
2 email_client.login(from_account, from_passwd)
3 msg = MIMEMultipart('related')
4 fp = open('../pic/图片.jpg', 'rb')
5         msgImage = MIMEImage(fp.read())
6         msgImage.add_header('Content-ID', 'weekly')
7         msg.attach(msgImage)
8         fp.close()
9 msg.attach(MIMEText("<b>"+content+"</b>" + "<br><img src=\"cid:weekly\">", 'html', 'utf-8'))

嗯,这样子就可以发图片了:

好滴,但是前面有提到qq邮箱只能用qq邮箱来发

那么我写了一个想法

当邮箱是qq邮箱的时候只能用qq邮箱,出错了退出程序

当邮箱不是qq邮箱的时候用其他邮箱来发,出错了再用QQ邮箱来发,再出错就退出程序

那么就准备了一大堆邮箱,循环发,首先判断是不是qq邮箱:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                if 'qq' in toemail_account[i]:
                    print('用了qq邮箱...')
                    # 定义协议地址
                    SMTP_host = 'smtp.qq.com'

                    # 取得@前面的东西
                    from_account = re.compile(r'(.*)@(.*)').search(fromemail_qqaccount[int(count_1) - 1]).group(1)
                    # 取得@后面的东西,等同于下面的语句
                    # from_postfix = re.compile(r'(.*)@(.*)').search(fromemail_qqaccount[i]).group(1)
                    from_postfix = 'qq.com'

                    # 密码
                    from_passwd = fromemail_qqpasswd[int(count_1) - 1]
                    # print('读取第count_1 - 1个qq的账号和密码')

                    # 收件人地址
                    to_account = toemail_account[i]

                    # print('用第count_1 - 1个qq的账号和密码发送邮件')
                    send_email(SMTP_host, from_account, from_passwd, to_account, subject, content)

这是很简单的判断读取excel的邮箱的东西啦,不多说

要说的是我要循环利用发件人的邮箱,那么就要有个判断,当循环到头的时候要重新循环,所以就有了那个count_1,最主要的是在这里:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 if count_1 % int(len(fromemail_qqaccount)) == 0:
2     # 循环够了,要初始化count_1
3     count_1 = 1
4 else:
5     count_1 = count_1 + 1

整除即可

如果收件人不是qq邮箱,那么来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 else:
 2 # 收件人地址
 3 to_account = toemail_account[i]
 4 # 取得地址协议
 5 if '163' in toemail_account[i]:
 6     SMTP_host = 'smtp.163.com'
 7 elif 'sina' in toemail_account[i]:
 8     SMTP_host = 'smtp.sina.com.cn'
 9 elif '126' in toemail_account[i]:
10     SMTP_host = 'smtp.126.com'
11 elif 'sohu' in toemail_account[i]:
12     SMTP_host = 'smtp.sohu.com'
13 
14 # 取得@前面的东西
15 from_account = re.compile(r'(.*)@(.*)').search(fromemail_othaccount[int(count_2) - 1]).group(1)
16 # 取得@后面的东西,等同于下面的语句
17 from_postfix = from_postfix = re.compile(r'(.*)@(.*)').search(fromemail_othaccount[int(count_2) - 1]).group(2)
18 # 密码
19 from_passwd = fromemail_othpasswd[int(count_2) - 1]
20 # print('读取第count_2 - 1个邮箱的账号和密码')
21 
22 # print('用第count_2 - 1个邮箱的账号和密码发送邮件')
23 send_email(SMTP_host, from_account,  from_passwd, to_account, subject, content)
24 if count_2 % int(len(fromemail_othaccount)) == 0:
25     # 循环够了,要初始化count_2
26     count_2 = 1
27 else:
28     count_2 = count_2 + 1

这样子这个程序挺像样子了

但是!

我是数据分析师

我很追求完美

万一中间程序断了怎么办,我怎么知道哪些人发了邮件哪些人没发?

呵呵哒,创建一个finish.txt,每发一个保存一个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1     #记录下已经发送的邮件
 2     save_finish = '../finish.txt'
 3     read_finish = open(save_finish, 'r').read()
 4     txt_finish = str(read_finish)
 5 
 6     # 以写入的方式打开txt,在上面记录的内容后面继续添加新内容
 7     file_finish = open(save_finish, 'w')
 8     txt_finish = str(txt_finish) + '\n' + str(to_account)
 9     file_finish.write(txt_finish)
10     file_finish.close()

最后成功运行:

--------------------------我是快乐的分割线---------------------------

EDM营销,满满的利润来了

最后为什么没有贴出完整代码,因为商业机密啊

我是收了钱的啊

思路都给了

还不满足啊

要不你可以去买收钱的啊

https://help.aliyun.com/document_detail/29421.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
一个可执行文件,外部脚本实现控制器,超简单 https://github.com/edboffical/webdog
一个可执行文件,外部脚本实现控制器,超简单 https://github.com/edboffical/webdog
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
python发邮件详解,smtplib和email模块详解
在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理。SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,python实现发邮件也是基于此基础上进行封装的。
全栈程序员站长
2022/11/01
1.3K0
python发邮件详解,smtplib和email模块详解
Java使用QQ邮箱给其他邮箱发邮件
个人微信小程序可以扫码体验 引入了2个jar包 <!-- mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>com.sun.mail</groupId> <art
小帅丶
2018/02/08
4.1K0
Java使用QQ邮箱给其他邮箱发邮件
使用Python 3发邮件
示例一:(使用yagmail模块) 直接使用别人封装好的第三方库: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/6/5 21:42 # @Author : zhdya # @File : demon.py import yagmail args = { "user": "[email protected]", "password": "xxxxx", "host": "smtp.163.
老七Linux
2018/06/07
9320
python自动发送邮件
每天发日报的你是不是想找个机器人代替你做这些重复性无技术含量的工作,来试试python自动发送邮件吧
诡途
2022/05/09
6380
使用smtplib模块发送邮件
作用: 监控爬虫脚本,出现异常或者正常结束时,给邮箱发送消息,自己好知道爬虫的进度 老样子,直接上代码 # -*- coding: utf-8 -*- # @Author: Mehaei # @Date: 2019-08-27 18:12:38 # @Last Modified by: Mehaei # @Last Modified time: 2019-08-28 17:48:49 import smtplib from datetime import datetime class ToEm
不止于python
2022/05/31
3070
Python3实现自动发送邮件
首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议。SMTP协议的默认TCP端口号是25。
用户9925864
2022/07/27
3310
Python3实现自动发送邮件
Python实现自动发送邮件(详解)
这点很关键,别忘了去开启SMTP, 别忘了去开启SMTP,否则邮件是无法发送成功的 。然后你还需要点击下面生成授权码,这个授权码才是使用Python发送邮件时的真正密码。
全栈程序员站长
2022/11/17
1.1K0
Python实现自动发送邮件(详解)
Python进阶37-smtp及Django发邮件
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
7830
python自动发邮件总结及实例说明
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。
周小董
2019/03/25
1.4K0
python自动发邮件总结及实例说明
python干货| python3利用SMTP进行邮件Email自主发送
利用python进行邮件的发送,这个功能自我感觉主要应用于检测或者报告之类,我两次运用这个功能。
Python进击者
2019/06/21
1.6K0
python干货| python3利用SMTP进行邮件Email自主发送
使用python发邮件
# -*- coding: UTF-8 -*- import smtplib import traceback from email.mime.text import MIMEText from email.utils import formataddr class SendMail(): def mail(self,subject,text): #self.my_sender='****@163.com' # 发件人邮箱账号 #self.my_pass
JQ实验室
2022/01/11
1.1K0
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
  发邮件前我们需要了解的是邮件是怎么一个形式去发送到对方手上的,通俗点来说就是你写好一封信,然后装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去,其他的就不关心了,只是关心时间,而电子邮件不像日常发送邮件的按天算,时间都是按
北京-宏哥
2019/09/11
1.5K0
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
python笔记38-使用zmail发各种邮件案例代码
本篇介绍使用zmail发各种格式的邮件,并运行成功的代码,小伙伴们只需更换自己的邮箱就可以运行起来了
上海-悠悠
2019/07/04
1.1K0
python笔记38-使用zmail发各种邮件案例代码
python发送邮件(二)——smtplib模块和email模块
一、模块介绍 1、smtplib 模块(用于邮件的发送) ①理论解释 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]) 通过这个语句,可以向SMTP服务器发送指令,执行相关操作(如:登陆、发送邮件)。所有的参数都是可选的。 host:smtp服务器主机名 port:smtp服务的端口,默认是25;端口号可以省略。 但是使用25号端口有一个问题,就是保密性不够好,数据都是明文传输,没有加密。 现在一般都推荐使用SSL,Secure So
Elsa_阿尼
2021/07/27
5.2K0
python发送邮件(二)——smtplib模块和email模块
Nagios开发邮件报警程序
当前公司nagios已经正常使用,也能报警,但是邮件报警采用的是sendmail,发件人总是nagios@localhost,收到后经常被加入到邮件中的垃圾箱,并且有些邮箱服务器有反垃圾检测,导致用户接收不到邮件。为解决这个问题,决定自己写一个邮件发送程序。
星哥玩云
2022/07/01
5450
python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
  本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理。在写脚本时,放到后台运行,想知道执行情况,会通过邮件、SMS(短信)、飞信、微信等方式通知管理员,用的最多的是邮件。在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮
北京-宏哥
2019/09/11
2.2K0
python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)
ASP和ASP.NET发送邮件笔记
    这两天因公司网站邮件发不出去,然后研究了在asp网站发送邮件和在asp.net网站发送邮件的代码,把碰到的问题这里记录一下。
tandaxia
2018/09/27
7.6K0
ASP和ASP.NET发送邮件笔记
Linux两种发邮件的方式
1、下载安装msmtp wget https://marlam.de/msmtp/releases/msmtp-1.6.7.tar.xz tar -xvJf msmtp-1.6.7.tar.xz ls cd msmtp-1.6.7 ./configure --prefix=/usr/local/msmtp make && make install 2、配置msmtp账号 cd /usr/local/msmtp mkdir etc #配置文件目录和配置文件都要自己建 cd etc 手动创建配置文件vi msmtprc # Set default values for all following accounts. defaults logfile /usr/local/msmtp/msmtp.log # The SMTP server of the provider. account default #你的发送邮件服务器 host smtp.126.com port 25 #要从哪个邮箱发出 from xxxx@126.com #这里如果使用on的话会报 "msmtp: cannot use a secure authentication method"错误 auth login tls off #邮箱用户名 user xxxx@126.com #邮箱用户名 #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为600属性 password xxxxxxx # Set a default account account default: test Esc,shift+: 进入命令模式,输入x,保存退出。 由于password是明码,所以我们需要修改此文件的权限 chmod 600 etc/msmtprc 3、测试 /usr/local/msmtp/bin/msmtp youremail@test.com 输入任意字符,然后按Ctrl+D退出,查看邮件是否收到。 由于设置了日志,可以到 /usr/local/msmtp/msmtp.log,查看日志,发信成功失败都会有记录。 按ctrl+d结束 但是它不能够发送附件,所以安装mutt 4、安装mutt vi /etc/Muttrc ,编辑mutt的总设置,修改以下几行 set from="发送邮件地址" set sendmail="/usr/local/msmtp/bin/msmtp" set use_from=yes set realname="发件人" set editor="vi" 发件地址最好与msmtp设置的账号相同,否则可能会出错。 5、测试一下mutt是否有效 echo "测试测试" | mutt -s "测试" 测试邮件地址 echo "testmail" |mutt -s "test" [-a /etc/hosts] test@163.com 这里的-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名 可以使用mutt进行邮件备份等工作了,结合cron使用,可以实现的功能相当多。
菲宇
2019/06/11
1.6K0
美食天下——使用Python自动发邮件提醒你周末吃个啥
前几天在Python交流群里边,【冫马讠成】大佬分享了一个有趣的代码,用于定时发送菜谱分享,觉得挺有意思,这里拿出来给大家分享。
Python进阶者
2022/03/04
4410
美食天下——使用Python自动发邮件提醒你周末吃个啥
Python自动发送4种形式的邮件,你会了吗?
Hi,大家好。自动化测试过程中,一般测试结果都会以邮件的形式发送给相关人员,在Python中,如何通过编写代码将邮件发送给对应的接收人呢?
可可的测试小栈
2022/06/06
1K1
Python自动发送4种形式的邮件,你会了吗?
推荐阅读
相关推荐
python发邮件详解,smtplib和email模块详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验