Skip to content


Linux下使用mail命令发送邮件

  Linux服务器有在运维时有时候会有需要进行外部邮件的发送,当然一般情况下会结合计划任务一起向管理员发送系统数据和动态,在不使用邮件系统的客户端程序(MUA)的情况下向外部发送邮件也非常简单,这时会用到mail命令。
  使用mail命令发送邮件分两种情况,一是服务器是个运作正常的邮件服务器(关于如何搭建邮件服务器请查阅相关文章),这个时候使用mail命令有三种格式,可以根据自己的喜好选择一种。
mai_postfix_iewb
  1. 使用文件进行邮件发送
mail -s “Hello world” test@iewb.net < mail.txt
  其中mail.txt为事先编辑好的文件,也就是邮件正文。
  2.直接使用shell当编辑器
mail -s “Hello world” test@iewb.net
hello,this is a test mail.

  第一行是输入的命令,-s表示邮件的主题,后面的test@iewb.net则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的”hello,this is a test mail.”。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
  3.使用管道进行邮件发送
echo “hello,this is a test mail.” | mail -s “Hello world” test@iewb.net
  使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。

  Linux服务器发送邮件还有一种情况就是linux不是一台正常的邮件服务器,就是没有绑定一个可以发送邮件的域名,这个时候就需要通过外部SMTP发邮件 (直接抛弃sendmail和postfix)。修改/etc/mail.rc,增加一下类似N行,指定外部的smtp服务器地址、帐号密码等。(如本机已安装postfix或sendmail需要先卸载)
set from=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=123456
set smtp-auth-password=654321
set smtp-auth=login

  编辑完mail.rc后就可以使用mail命令发送邮件了,格式与上面相同,比如
echo “hello,this is a test mail.” | mail -s ” Hello world” test@iewb.net

Posted in 技术文章.

Tagged with , .


4 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. 好千度 says

    第一次来,欢迎回访

  2. 萌萌哒兼职 says

    我也来看看

  3. 赚钱吧 says

    感谢分享,学习了!



Some HTML is OK

or, reply to this post via trackback.