Linux服务器发送邮件一般都是基于sendmail进行的,sendmail服务器提供对外的邮件发送功能。
专注于为中小企业提供成都网站设计、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业乐昌免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
1.安装sendmail服务器安装方法:
#sudo apt-get install sendmail
2.然后通过ps查看是否有sendmail进程,如果存在,则安装成功:
#ps -ef|grep sendmailroot 1282 1 0 13:39 ? 00:00:00 sendmail: MTA: accepting connections
3.成功安装sendmail后,就可以向邮件账户发送邮件了,编辑如下文件a.sh,通过chmod 更改权限后执行就可以。
首先发送邮件的使用的是sendmail,所以sendmail的service需要装好
然后发送邮件使用命令mail XXX
最后把这个命令放到cron job中设好时间就可以定时自动发送邮件了
mail -s "Hello from linuxde.net by shell" admin@linuxde.net
hello,this is the content of mail.
welcome to
第一行是输入的命令,-s表示邮件的主题,后面的admin@linuxde.net则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的两行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
《Linux设置定时任务》 一文中,我们学习了使用crontab设置定时任务的方法,并用它来获取ganglia的运行状态。这样还不够,我们想要在ganglia的运行状态出现问题时通知我们,这样,我们就不用每天自己查看日志了。
本文主要参考 Ubuntu mail命令发送邮件 和 如何通过Shell脚本实现发送邮件通知功能? 。
1、安装mailutils
sudo apt-get install mailutils
2、General type of mail configuration选择Internet Site。
3、System mail name输入mail.voidking.com。
命令格式:
mail [OPTION...] [address...]
常用到的选项,一个是s,代表主题;一个是A,代表附件。其他的需要时查看help。
目标:给邮箱 voidking@qq.com 发送邮件,主题为“Hello VoidKing”,内容为“Welcome to mail world!”
mail -s 'Hello VoidKing' voidking@qq.com
提示Cc,这里不需要抄送,就直接回车。然后输入邮件内容“Welcome to mail world!”,回车,ctrl+D,发送邮件。
但是,等待了几分钟,并没有收到邮件,垃圾箱也没有。
mail ,查看email的发送状态为Undelivered Mail Returned,原来没有投递出去。
查看邮件系统日志: tail -n 50 /var/spool/mail/test ,提示host mx3.qq.com[183.57.48.35] said: 550 Mail content denied。看来qq邮箱的垃圾邮件防御机制做的不错,那就换个163邮箱,没想到依然失败。
那就换一台服务器!发送给 voidking@qq.com ,成功!很尴尬。。。
除了上面的方式发送邮件,我们还可以使用:
mail -s 'Hello VoidKing' voidking@qq.com 'Welcome to mail world!'
或者使用:
echo 'Welcome to mail world!' | mail -s "Hello VoidKing" voidking@qq.com
1、从文本读入内容发送邮件
mail -s 'Error report' voidking@qq.com /tmp/log/ganglia/error-20180524.log
2、发送附件
mail -s 'Error report' voidking@qq.com -A /tmp/log/ganglia/ganglia-20180524.log /tmp/log/ganglia/error-20180524.log
3、指定发件人
echo 'Welcome to mail world!' | mail -s "Hello VoidKing" voidking@qq.com -aFrom:haojin@qq.com
失败了,收不到邮件,不知道什么原因,留个坑吧。
目标:每天获取一次ganglia的状态日志,然后通过checkganglia.sh脚本进行审阅。审阅完毕,发送审阅结果到管理员的邮箱。
修改checkganglia.sh脚本为:
至此,大功告成! 《Linux设置定时任务》 配合 《Linux设置邮件提醒》 ,简直完美!两篇文章完成了一个小系统:定时生成ganglia日志,定时审阅ganglia日志,并且把审阅结果通过邮件发送给管理员。
Linux命令大全——LMNOPQ
如何在Ubuntu环境下搭建邮件服务器(一)
Ubuntu下使用mail命令发送邮件
在备份数据时,需要每天登录服务器来查看备份是否成功。所以学习了下linux下如何通过shell来给自己邮箱发送邮件,这里以ubuntu为例,使用mail命令来进行外部邮件的发送。mail命令的语法如下:
Usage: mail
[-iInv
]
[-s subject
]
[-c cc-addr
]
[-b bcc-addr
] to-addr ...
[-- sendmail-options ...
]
[-iInNv
]
-f
[name
]
[-iInNv
]
[-u user
]
使用mail命令发送邮件,有如下三种方式:
1、直接使用shell当编辑器
-s
"test" davis
@gmail .com
hello,davis
welcome to you!
第一行是输入的命令,-s表示邮件的主题,后面的davis@gmail.com则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的两行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
2、使用管道进行邮件发送
echo
"hello,davis.\n This is a test mail"
-s
"test" davis
@gmail .com
使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。
3、使用文件进行邮件发送
-s
"Hello davis" davis
@gmail .com
mail.txt
使用上面的命令后,我们就可以把mail.txt文件的内容作为邮件的内容发送给davis@gmail.com了。
还有些其他的参数就不再介绍。