ubuntu配置mail邮件服务器

背景:

最近在看项目中前辈写过的shell,当成功或失败时有邮件发出,并且发送邮件的命令很简单,只是一个mail命令,由于之前不是很了解,所以简单看了一下,并在自己的虚拟机上测试了一下。所以此文的目的主要是给像我一样的新手入门参考的。

环境:

Ubuntu14.04, 没有安装mail命令

摘要:

ubuntu中sendmail函数可以很方便的发送邮件,ubuntu sendmail先要安装两个包,再安装一个工具包

第一步:安装sendmail

sudo apt-get install sendmail  
sudo apt-get install sendmail-cf
sudo apt-get install mailutils

安装过程中会出现如下界面:

原文说这个System mail name会被用到,我自己测试发现并没有使用,默认发出邮件的名字是当前登录用户的名字,并不是这里配置的System mail name,给本机发邮件可以使用也可以只使用username,下文会提到。

这里一路选择默认就可以了。

安装完以后检查一下:

ps aux |grep sendmail
darren@ubuntu:~/darren$ ps aux |grep sendmail
root      1276  0.0  0.4 100728  4920 ?        Ss   Apr12   0:06 sendmail: MTA: accepting connections
darren   11770  0.0  0.2  11764  2252 pts/0    S+   13:42   0:00 grep --color=auto sendmail

说明sendmail 已经安装成功并启动了

第二步:配置sendmail

sendmail 默认只会为本机用户发送邮件,只有把它扩展到整个Internet,才会成为真正的邮件服务器。

打开sendmail的配置宏文件:/etc/mail/sendmail.mc,修改如下行

vim /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
//修改为
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl

0.0.0.0表名可以连接任何服务器

重新生成配置文件:

cd /etc/mail  
mv sendmail.cf sendmail.cf_bk      //做一个备份  
m4 sendmail.mc > sendmail.cf   //>的左右有空格,提示错误没有安装sendmail-cf  


//注意,如过最后一个命令报没有权限,需要切换到root上执行

第三步:测试发送邮件

echo “邮件正文” | mail -s 邮件主题 test@126.com //简单方式
mail -s 邮件主题 test@126.com < test.txt  //文件内容发送方式

其它可选想如下:

-a, --append=HEADER: VALUE append given header to the message being sent
       //追加,例如-aFrom: xxx@yyy.com, 指定邮件是谁发出的

-A, --attach=FILE
       attach FILE
       //发送附件,-A 文件路径, 注意如果发送多个附件,需要使用多次-A, 例如:-A file1 -A file2

-s, --subject=SUBJ
       send a message with the given SUBJECT
       //指定邮件标题

这里只列出了部分选项,帮助文档请使用man mail查看

常用例子如下:

  • 给多个人发邮件:邮件列表使用“,”分割
echo “邮件正文” | mail -s 邮件主题 test@126.com,test2@126.com
  • 指定发件人:加-aFrom:xxx@yyy.com
echo “邮件正文” | mail -s 邮件主题 test@126.com -aFrom: test2@126.com
  • 给本机其它用户发送邮件:使用username或username@System mail name
echo "This is the message body" | mail -s "hello, this is a test!" username
echo "This is the message body" | mail -s "hello, this is a test!" username@ubuntu

//这两种方法等价,第二种中的ubuntu是当前系统的主机名(hostname),见安装部分的最后一张图,系统邮件名默认的是主机名,也是ubuntu
  • 发送附件:使用-A file
echo "This is the message body" | mail -s "subject" user@qq.com -A file
//发送两个附件
echo "This is the message body" | mail -s "subject" user@qq.com -A file -A file2
  • 查看邮件:直接mail命令

在第三行显示有7封邮件,其中3封未读。 
第二列是邮件编号,最后一列是邮件主题,中间是收件日期。 
最后一行?提示符表示等待输入命令。

输入邮件编号,回车后就可以打开该邮件进行阅读。 
输入z回车后退后邮件列表。 
输入q回车后退出

 

参考:

https://blog.csdn.net/frank_ldw/article/details/81218501

https://blog.csdn.net/chijiaodaxie/article/details/77893464

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值