背景
这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <<用R来寄mail>>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件,没有邮件服务器也能发.扯的有点远了,我们看看怎么发的吧.
hello mail
在终端中输入如下命令(不要复制粘贴,第一遍手敲才有感觉):
$ mail -s "hello mail" qyf404@gmail.com
来自shell的一份邮件.
邮箱输完后要回车,然后开始编辑邮件正文,编辑完后,按回车另起一行,按CTRL+D
把邮件发送出去.
mail命令说明
学shell命令最好的方式就是敲一个man命令看看.
$ man mail
NAME
mail, mailx -- send and receive mail
SYNOPSIS
mail [-EiInv] [-s subject] [-c cc-addr] [-b bcc-addr] [-F] to-addr ...
mail [-EHiInNv] [-F] -f [name]
mail [-EHiInNv] [-F] [-u user]
mail -e [-f name]
mail [-H]
...
命令参数还真不少,正文编辑是还有好多命令.想想一般也没人手敲命令发邮件,就简单说几个常用的参数吧.
-s 后面跟着邮件标题.
-c 抄送列表,用逗号分隔.
-b 暗抄列表,用逗号分隔.
实用技巧
其实发邮件最繁琐的是编辑正文.其实可以用管道命令来实现与mail命令的组合.
- 用echo传输邮件正文
$ echo "hello" | mail -s test qyf404@gmail.com
- 文本文件内容作为邮件正文
$ mail -s test qyf404@gmail.com < text.txt