mail使用外部邮箱地址发送邮件

linux下的mail命令会默认使用本地sendmail或者postfix发送邮件,这样要求本地的机器必须安装和启动Sendmail或者postfix服务,这两个配置都非常麻烦,而且会带来不必要的资源占用。

通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail和postfix而用外部的smtp服务器发送邮件的目的:

mail命令需要设定mail.rc(或nail.rc)文件,

vi /etc/mail.rc
#文件最后面加上下面的内容
set from=username@163.com
set smtp=smtp.163.com
set smtp-auth-user=username@163.com
set smtp-auth-password=password
set smtp-auth=login

设定以上文件后,使用以下命令回车后输入正文内容,后可以发送文件
mail -v -s "Test" user@domain.com

也可以使用管道
echo "hello,world" | mail -s "subject" 1280342920@qq.com

mail命令的常见参数:

  • v表示显示详细过程
  • s表示标题
  • i 忽略 tty 的中断讯号。 (interrupt)
  • I 强迫设成互动模式。 (Interactive)
  • v 列印出讯息,例如送信的地点、状态等等。 (verbose)
  • n 不读入 mail.rc 设定档。
  • s 邮件标题。
  • c cc 邮件地址。
  • b bcc 邮件地址。