一言不合就用stata写邮件(Outlook/Foxmail)

2016-12-26 孙曼纯 武大 爬虫俱乐部 爬虫俱乐部

      诸位宝宝好(。・∀・)ノ゙,之前我们分享了如何用stata听音乐,不得不说这是个撩妹撩汉的好技能,那么你知道stata还可以写邮件么,试想一下, 工作之余,处理繁复数据后,随便敲几个代码,Outlook/Foxmail会乖乖弹出来,一封邮件就写好了,是不是很炫酷 呢~~   

      下面小编就来为大家讲解如何用stata发邮件~

※attention:虽然都是邮件客户端,二者对应的命令并不一样,所以下文中将先介绍Outlook相关的命令,再介绍和Foxmail相关的命令,同时将Outlook的命令用绿色显示,Foxmail的命令用蓝色显示,诸位宝宝可以直接浏览自家邮件客户端的命令呦。





MORNING

1

用Outlook发邮件

一、打开邮件客户端(类似用stata打开音乐播放器,duang~传送门)

和打开音乐播放器一样,通过stata打开Outlook也有两个命令,shell和winexec

1.通过shell命令打开Outlook

在用stata打开Outlook前,我们需要告诉stata你的Outlook的安装位置(以小编的安装位置为例):

cd "C:\Program Files\Microsoft Office\root\Office16"

接下来就可以shell命令打开Outlook啦:

shell OUTLOOK.EXE

这时你会看到,Outlook启动了,但是还有一个cmd.exe的窗口出现,这是Windows系统的命令行程序,为了进一步输入命令,我们需要关闭它。

2.通过winexec命令打开Outlook

winexec命令也允许我们从stata的命令行启用其他的程序,在用winexec命令打开Outlook之前,我们也需要明确路径:

cd "C:\Program Files\Microsoft Office\root\Office16"

用winexec打开Outlook:

winexec OUTLOOK.EXE

duang~~Outlook就打开了,而且命令行程序也木有打开,简直完美!如果宝宝们熟悉dos操作系统,也可以考虑用shell打开Outlook哦。

二、定义局部宏

在写邮件之前首先我们使用用local这个命令,先给大家详细的介绍一下,local可以用来定义局部宏,定义方式是如下的格式:

– local mylocal [ option ]

– []中表示局部宏后面所接的内容,可以是表达式、扩展的函数、"字符串"和`"字符串"'–有""双引号的格式,同时还有单引号和双引号一起使用的复合引号`""',这种情况使用在字符串( string)中含有双引号的情况。

下面我们就用local这个命令把收件人,邮件主题,邮件正文依次设为三个变量a,b,c,这样在后续的命令中,当我们需要输入收件人时,我们都可以用字母a来代替,是不是很简便呢:

小编选择的收件人是xueyuan19920310@163.com,没错,就是小爬虫的提问邮箱,将收件人定义为a:local a xueyuan19920310@163.com

小编想向这位男神问好,于是邮件主题是“你好,爬虫君”,我是懂礼貌树新风的乖宝宝嘿嘿,将邮件主题定义为b:local b 你好,爬虫君

小编的正文是“爬虫君,谢谢你的分享,让我爱上你,也爱上stata,(换行)我有一个小小的问题想请教你:(换行)如何用stata发邮件?(换行)谢谢爬虫君!~~~”,将邮件正文定义为c:local c 爬虫君,谢谢你的分享,让我爱上你,也爱上stata,%0A我有一个小小的问题想请教你:%0A如何用stata发邮件?%0A谢谢爬虫君!~~~

※attention:其中部分标点符号要以URI码输入,各位宝宝可能要问了这又是神马,简单的理解就是万能的Outlook哥也有他的软肋,就是他还读不懂人类博大精深的标点符号哈哈,所以我们要把标点符号翻译成他看得懂的语言,再让stata告诉他,翻译秘籍如下:

(小编用的是stata14版本和Outlook2016版本,亲测除了“换行”无法手动输入和“空格”容易乱码外,其他标点符号对强大的outlook已经都是小菜一碟啦,甚至萌萌哒的波浪线酱也可以直接输入哟~~)

需要指定的标点符号,输入指定的代码即可,举个栗子~

我们想使主题与正文为:

Subject(主题): 你好,爬虫君
Body(正文): 爬虫君,谢谢你的分享,让我爱上你,也爱上stata,(换行)我有一个小小的问题想请教你:(换行)如何用stata发邮件?(换行)谢谢爬虫君!~~~

对应的主题和正文就应该是:

主题:你好,爬虫君

正文:爬虫君,谢谢你的分享,让我爱上你,也爱上stata,%0A我有一个小小的问题想请教你:%0A如何用stata发邮件?%0A谢谢爬虫君!~~~

三、写邮件

写邮件可以通过winexec命令来执行,先把完整的代码分享给大家:

winexec "C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" /c ipm.note /m `a'&subject=`b'&body=`c'

乍一看是不是觉得这都是神马,怎么友谊的小船说翻就翻呢?没关系,且听小编慢慢道来【认真脸】:

(1)首先我们要在winexec后加上Outlook的路径和名称"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE"

(2)然后我们需要让Outlook处在发邮件的状态,我们使用/c这个命令行参数,参数说明:

/c ipm.activity 创建一个“日记”条目
/c ipm.appointment 创建一个约会
/c ipm.contact 创建一个联系人
/c ipm.note 创建一个电子邮件
/c ipm.stickynote 创建一个便笺
/c ipm.task 创建一个任务     

因为我们今天要get的技能是发邮件(●ˇ∀ˇ●),所以我们要在路径后加上/c ipm.note就可以啦 ,即创建一个电子邮件。

(3)最 后我们就要通过stata填写收件人,邮件主题和正文啦,我们使用/m这个命令行参数。/m后紧接着添加的是收件人,即是我们定义的宏变量 `a';subject后是邮件题,即是我们定义的宏变量`b';body后是正文,即是小编定义的变量`c';最后我们要用&连接这三者,表示 之后的命令无论如何都会被执行哟。

这一部分的完整代码:

/m `a'&subject=`b'&body=`c'

好了,讲解完毕,诸位宝宝是不是觉得清晰了很多呢,输入以上命令后,即会弹出一封自动写好的邮件啦:

四、 发邮件??

此时邮件已经写好啦,并弹了粗来,你是不是感觉人生变明亮了,可能要爱上小编了嘻嘻?点击Outlook上的发送按钮就可以将邮件发出去啦,各位宝宝可能拍桌子了,怎么画风突变,不用stata发送了呢?想知道么?请宝宝们动动手指,移到文末哟~~

MORNING

2

用Foxmail发邮件

一、 打开邮件客户端

通过stata打开Foxmail邮件客户端也有两个命令,shell和winexec,这一部分对于安装Outlook和Foxmail的宝宝也都是没有区别的,为了避免宝宝们翻上去找的不方便,小编仍然详细的讲解一遍。

1.通过shell命令打开邮件客户端

在用stata打开前邮件客户端,我们需要告诉stata你的Foxmail的安装位置(以小编的安装位置为例):

cd "D:\software\foxmail"

接下来就可以shell命令打开Foxmail啦:

shell Foxmail.exe

这时你会看到,Foxmail启动了,但是还有一个cmd.exe的窗口出现,这是Windows系统的命令行程序,为了进一步输入命令,我们需要关闭它。

2.通过winexec命令打开邮件客户端

winexec命令也允许我们从stata的命令行启用其他的程序,在用winexec命令打开邮件客户端之前,我们也需要明确路径:

cd "D:\software\foxmail"

用winexec打开Foxmail:

winexec Foxmail.exe

duang~~邮件客户端就打开了,而且命令行程序也木有打开,简直完美!如果宝宝们熟悉dos操作系统,也可以考虑用shell打开邮件客户端哦。

二、定义局部宏

在写邮件之前首先我们使用用local这个命令,这一部分对于两个邮件客户端也是几乎一样的,同样先给大家详细的介绍一下,local可以用来定义局部宏,定义方式是如下的格式:

– local mylocal [ option ]

– []中表示局部宏后面所接的内容,可以是表达式、扩展的函数、"字符串"和`"字符串"'

–有""双引号的格式,同时还有单引号和双引号一起使用的复合引号`""',这种情况使

用在字符串( string)中含有双引号的情况。

下面我们就用local这个命令把收件人,邮件主题,邮件正文依次设为三个变量a,b,c,这样在后续的命令中,当我们需要输入收件人时,我们都可以用字母a来代替,是不是很简便呢:

小编选择的收件人仍然是xueyuan19920310@163.com,没错,就是小爬虫的提问邮箱,将收件人定义为a:local a xueyuan19920310@163.com

小编想向这位男神问好,于是邮件主题是“你好,爬虫君”,我是懂礼貌树新风的乖宝宝嘿嘿,将邮件主题定义为b:local b 你好,爬虫君

小编的正文是“爬虫君,谢谢你的分享,让我爱上你,也爱上stata,(换行)我有一个小小的问题想请教你:(换行)如何用stata发邮件?(换行)谢谢爬虫君!~~~”,将邮件正文定义为c:local c 爬虫君,谢谢你的分享,让我爱上你,也爱上stata,<br>我有一个小小的问题想请教你:<br>如何用stata发邮件?<br>谢谢爬虫君!~~~

※attention: 标点符号都可以直接输入了,但是想要换行的话,要打上<br>或者<p>,而不是用Outlook中代表换行的%0A或 者%0D,可以用相同的方法理解:同样强大的Foxmail也同样有它的软肋,他也是读不懂人类的“换行”的,所以我们也需要把“换行”翻译成他看得懂的 语言,而他和Outlook都很傲娇,使用的语言还不一样,他读得懂的语言是html语言,即是“换行”=<br>/<p>。

三、写邮件

两个邮件客户端在这部分的差别就很大了呢,首先给宝宝们分享全部的代码:

winexec "Foxmail.EXE" mailto: `a'?subject=`b'&body=`c'

感觉可读性强了很多?嘿嘿,你可不要高兴的太早哟,下面让小编来为你解读这行代码:

【1】“mailto:”后面紧接着的就是收件人,小编的收件人是“xueyuan19920310@163.com”,所以小编输入的是对应的宏变量`a'

【2】“subject=”后是邮件的主题,小编的主题是“你好,爬虫君”,所以小编输入的是对应的宏变量`b'

【3】“body=”后面是邮件的正文,小编的正文是“爬虫君,谢谢你的分享,让我爱上你,也爱上stata,(换行)我有一个小小的问题想请教你:(换行)如何用stata发邮件?(换行)谢谢爬虫君!~~~”所以小编输入的是宏变量`c'

【4】看 到这里你的内心一定是窃喜的,but!但是!然而!小编要提醒你一个容易出错的细节:连接收件人和标题的命令的符号一定要是“?”,连接邮件标题和正文的 标点符号却一定要用“&”,不要问小编为什么,Foxmail这个磨人的小妖精!都打成“?”或者“&”以及两个符号颠倒顺序都是无法顺 利写邮件的。

解决以上问题后,一封写好了的邮件就会自己弹出来啦:

四、 发邮件??

最后和Outlook也是一样的,点击Foxmail上的发送按钮就可以将邮件发出去啦,各位宝宝是不是在好奇为什么不用stata发送了呢?

小编弱弱的狡辩一句,发之前不要检查下邮件的内容么嘿嘿,如果是给男神女神的表白信,万一字打错了可怎么办呢~反正都要打开的……

好啦,其实是小编google了很久都没有找到发出去邮件的命令呢【伤心脸】,有没有机智聪明又可爱的宝宝可以告诉我呢?(请为小编脑补一个迷妹的眼神)

欢迎找到发送邮件的命令的宝宝通过邮件联系我们哟,邮箱xueyuan19920310@163.com,蟹蟹思密达~!!

今天分享的内容就是这些啦

接下来让我们关注一下空气质量情况

全国空气质量如下


新疆的朋友

要注意了


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~


编辑 by 司海涛


往期推文推荐:

1.火锅和肥羊,啤酒和炸鸡,cnstock和chinafin

2.天路——chinafin与cntrade命令

3.用subinfile修改文件,滚蛋吧,繁琐的命令君!

4.分时数据,从此唾手可得

5.爬虫俱乐部周末送大礼——chinagcode提取中文地址经纬度

6.esttab功能挖掘:“Yes”or“No”

7.用“套路”处理数据

8.厉害了,我stata哥

9.众里寻她千百度,synth命令来帮助!

10.I have a Stata, I have a python




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。


此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com

投稿要求:

1)必须原创,禁止抄袭;

2)必须准确,详细,有例子,有截图;

注意事项:

1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。

3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


长按关注哦~





微信扫一扫
关注该公众号