linux脚本发送邮件 shell发送邮件(使用 msmtp+mutt+shell来实现) |
本文标签:linux,发送邮件 之前在Linux下使用mail命令来发送邮件,配置起来比较麻烦,需要配置sendmail的很多东西 。而且还必须启动sendmail才能保证邮件发送成功 。其实我们就只要能发送邮件就可以,服务器多开个东西就等于多一个入侵的门 。而且sendmail漏斗是很多的 。那么有没有类似于foxmail,outlook这样的邮件客户端软件,并且有命令行的形式,来发送邮件呢 。mutt和msmtp提供了一个很好的解决方案 。 开始: 这里因为很多路径我写死了,所以最好按照我的安装路径来安装 。或者根据自己的环境修改路径 。注意后面的注释 。 因为这个我已经写成sh文件,只要执行install.sh就可以,但是这里不能传附件,我就拆开写吧,注意有2个隐藏文件 。 我使用的是163的免费邮 。如果你用别的,修改相应的smtp地址 。后面的注释不用复制 。 复制代码 代码如下:mkdir -p /usr/local/msmtp/etc vi /root/.msmtprc //注意文件名前面有个“点" host smtp.163.com //smtp地址 tls off auth plain from meiti_jiankong@163.com //从哪个邮件发出来 user meiti_jiankong //用户名 password a#^*225*mgYjm21 //邮箱密码 vi /root/.muttrc set sendmail="/usr/local/msmtp/bin/msmtp" //msmtp的安装位置 。根据自己的情况改 set use_from=yes set from=meiti_jiankong@163.com //用户名 set envelope_from=yes vi /usr/local/msmtp/etc/msmtprc defaults account meiti_jiankong //用户名 host smtp.163.com // smtp -IP from meiti_jiankong@163.com //用户名 auth login port 25 tls off user meiti_jiankong@163.com //用户名 password a#^*225*mgYjm21 //密码 account default : meiti_jiankong logfile /usr/local/msmtp/log/msmtp.log //用户名 以上3个文件就这样保存,请确保用户名、密码、stmp的正确性 。再来: mkdir -p /usr/local/msmtp/log echo set sendmail="/usr/local/msmtp/bin/msmtp" >>/etc/Muttrc echo "set use_from=yes" >>/etc/Muttrc echo set realname="meiti_jiankong@163.com" >>/etc/Muttrc //这里改成自己的邮箱 echo set editor="vim" >>/etc/Muttrc 安装软件包msmtp tar jxvf msmtp-1.4.21.tar.bz2 cd msmtp-1.4.21 ./configure --prefix=/usr/local/msmtp make sleep 3 make install sleep 3 cd .. tar zxvf mutt-1.5.21.tar.gz cd mutt-1.5.21 ./configure --prefix=/usr/local/mutt make sleep 3 make install sleep 3 cd .. ln -s /usr/local/msmtp/bin/msmtp /usr/bin 这样就完成了 发送命令: /usr/local/mutt/bin/mutt -s "邮件标题" 281450202@qq.com -c 1516070****@139.com </root/jiankong_log/data.log -a /tmp/附件.txt -s 邮件标题 紧接的是接收邮件地址 -c 抄送地址 "</root/jiankong_log/data.log "为邮件正文 -a是附件 。 如果发送不成功,请检测下配置文件 。 ![]() 李坤山 |