shell mutt msmtp 发邮件

cat mail.sh
#!/bin/bash
#--------------------------------------------------
# Created:2015-05-04
# Author:jimmygong
# Mail:[email protected]
# Function:shell mutt msmtp
# Version:1.0
#--------------------------------------------------
[[ -e /lib/lsb/init-functions ]] && source /lib/lsb/init-functions
[[ -e /etc/init.d/functions ]] && source /etc/init.d/functions
set -o nounset
mailsmtp="smtp.163.com"
mailuser="[email protected]"
username="${mailuser%@*}"
mailpwd="123456"
mailport="25"
sdate="log$(date +%s)"
tarcmd="tar xf"
url="http://sourceforge.net"
msmtptar="msmtp-1.4.21.tar.bz2"
msmtpver=`echo $msmtptar|awk -F"-" ‘{print $2}‘|sed ‘s/.tar.bz2//g‘`
msmtphead=`echo ${msmtptar%%-*}`
msmtpurl="$url/projects/msmtp/files/msmtp/$msmtpver/$msmtptar"
mutttar="mutt-1.5.22.tar.gz"
muttver=`echo $mutttar|awk -F"-" ‘{print $2}‘|sed ‘s/.tar.gz//g‘`
mutthead=`echo ${mutttar%%-*}`
mutturl="$url/projects/mutt/files/mutt-dev/$mutttar"
debianpkg=(libncurses-dev make gcc bzip2 xsltproc docbook-xsl lynx curl axel wget)
centospkg=(gcc ncurses-devel make docbook-style-xsl.noarch curl wget) 
echosucc () {
    succstatus="[ Ok ]"
    printf "\033[32m $succstatus $* \033[0m\n"
}
echofail () { 
    failstatus="[ Failure ]"
    printf "\033[31m $failstatus $* \033[0m\n"
    exit 1
}
function echoresult () {
if [[ $? == ‘0‘ ]]
then
    echosucc
else
    echofail
fi
}
function installwait () {
echo -n "Start Install."
for ((i=0;i<3;i++))
do
    echo -n ".";sleep 1
done
echo
}
function installpkg () {
installwait
if [[ -e /etc/debian_version ]] && cat /etc/issue|head -1
then
    echo -n "install package:"
    apt-get -y install ${debianpkg[@]} --force-yes > ~/$sdate 2>&1
    echoresult
elif [[ -e /etc/redhat-release ]] && cat /etc/issue|head -1
then
    echo -n "install package:"
    yum -y install ${centospkg[@]} > ~/$sdate 2>&1
    echoresult
else
    echo "Unknown Release:"
    exit 1
fi
}
function downloadpkg () {
if [[ ! -e ~/$msmtptar ]] && [[ ! -e ~/$mutttar ]]
then
    status=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w "%{http_code}\n" $url`
    if [[ $status != ‘200‘ ]]
    then
        echo -n "url unavailable:"
        echofail
    fi
    echo -n "download $msmtphead:"
    wget $msmtpurl > ~/$sdate 2>&1
    echoresult
    echo -n "download $mutthead:"
    wget $mutturl > ~/$sdate 2>&1
    echoresult
elif [[ ! -e ~/$msmtptar ]]
then
    echo -n "download $msmtphead:"
    wget $msmtpurl > ~/$sdate 2>&1
    echoresult
elif [[ ! -e ~/$mutttar ]]
then
    echo -n "download $mutthead:"
    wget $mutturl > ~/$sdate 2>&1
    echoresult
fi
}

function installmsmtppkg () {
echo -n "tar $msmtphead:"
$tarcmd ~/$msmtptar > ~/$sdate 2>&1
echoresult
cd ~/$msmtphead-$msmtpver
echo -n "$msmtphead configure:"
./configure --prefix=/usr/local/msmtp > ~/$sdate 2>&1
echoresult
echo -n "$msmtphead make:"
make > ~/$sdate 2>&1
echoresult
echo -n "$msmtphead make install:"
make install > ~/$sdate 2>&1
echoresult
[[ -e /usr/bin/msmtp ]]||ln -s /usr/local/msmtp/bin/msmtp /usr/bin/
cd ..
}

function installmuttpkg () {
echo -n "tar $mutthead:"
$tarcmd ~/$mutttar > ~/$sdate 2>&1
echoresult
cd $mutthead-$muttver
echo -n "$mutthead configure:"
./configure --prefix=/usr/local/mutt > ~/$sdate 2>&1
echoresult
echo -n "$mutthead make:"
make > ~/$sdate 2>&1
echoresult
echo -n "$mutthead make install:"
make install > ~/$sdate 2>&1
echoresult
[[ -e /usr/bin/mutt ]]||ln -s /usr/local/mutt/bin/mutt /usr/bin/ 
cd ..
}

function confmsmtpmutt () {
echo -n "configure $msmtphead&&$mutthead:"
[[ -e /usr/local/msmtp/etc ]] ||mkdir -p /usr/local/msmtp/etc
[[ -e /usr/local/msmtp/log ]] ||mkdir -p /usr/local/msmtp/log
[[ -e /etc/Muttrc ]] || cat > /etc/Muttrc << EOF
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="${mailuser}"
set editor="vim"
EOF
[[ -e ~/.msmtprc ]] || cat > ~/.msmtprc << EOF
host ${mailsmtp}
tls off
auth plain
from ${mailuser}
user ${username}
password ${mailpwd}
EOF
[[ -e ~/.muttrc ]] || cat > ~/.muttrc << EOF
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set from=${mailuser}
set envelope_from=yes
EOF
[[ -e /usr/local/msmtp/etc/msmtprc ]] || cat > /usr/local/msmtp/etc/msmtprc << EOF
defaults 
account ${username}
host ${mailsmtp}
from ${mailuser}
auth login
port ${mailport}
tls off
user ${mailuser}
password ${mailpwd}
account default : ${username}
logfile /usr/local/msmtp/log/msmtp.log
EOF
echoresult
}

installpkg
downloadpkg
installmsmtppkg
installmuttpkg
confmsmtpmutt
echo "Test: echo "OKOK"|mutt -s "OKOK" $mailuser"
exit 0

===============================说明==================================
执行效果
bash mail.sh 
Start Install....
Debian GNU/Linux 5.0 \n \l
install package: [ Ok ]  
download msmtp: [ Ok ]  
download mutt: [ Ok ]  
tar msmtp: [ Ok ]  
msmtp configure: [ Ok ]  
msmtp make: [ Ok ]  
msmtp make install: [ Ok ]  
tar mutt: [ Ok ]  
mutt configure: [ Ok ]  
mutt make: [ Ok ]  
mutt make install: [ Ok ]  
configure msmtp&&mutt: [ Ok ]  
Test: echo OKOK|mutt -s OKOK [email protected]

测试(收到邮件了)
echo "OKOK"|mutt -s "OKOK" [email protected]       
如果是需要带附件的话
/usr/local/mutt/bin/mutt -s "aaaaa" [email protected] -c [email protected] </root/stock/20150418.1429337805 -a /root/stock/20150418.1429337805
-s 邮件标题         -s <subj>    specify a subject (must be in quotes if it has spaces)
-c 抄送地址         -c <address>    specify a carbon-copy (CC) address
-a 是附件           -a <file>    attach a file to the message
/root/stock/20150418.1429337805为邮件正文 。
如果发送多个附件,需要在每个附件前加-a参数。 

有问题就看这个日志里的信息log$(date +%s)

此脚本在centos6.6和debian6.0和debian5.0上都跑过
时间: 2024-12-19 06:27:02

shell mutt msmtp 发邮件的相关文章

Ubuntu使用mutt+msmtp发邮件

apt-get install mutt apt-get install msmtp cp -rv /etc/Muttrc ~/.muttrc vi ~/.muttrc(最后添加) set sendmail="/usr/bin/msmtp"set use_from=yesset realname="yangming0"set [email protected]set envelope_from=yes:wq vi ~/.msmtprc account default

shell做统计发邮件

实现的功能 1.连接数据库 2.执行SQL 3.结果发邮件 4.使用crontab定时执行 使用到的shell命令 1.date 本次用到的是date的格式,并从当前时间的前一天 #当前时间输出格式2019-12-12 12:12:12 date "+%Y-%m-%d %H:%M:%S" #当前时间前一天时间 date -d '-1days'+"%Y-%m-%d %H:%M:%S" 2.mysql 3.sendmail 4.cat /etc/shells 查看系统中

在命令行上 使用 mutt, fetchmail, maildrop, msmtp 收发邮件

基于shell 现在已经有了 Mail.app, Thunderbird, Outlook 这些图形化工具能很方便的处理邮件,为啥还需要 mutt 这种命令行文本方式的邮件工具呢?mutt 的一个优势是占用资源小,可以很好的运行在低配置的虚拟机或古老的电脑上(应该不会有人想在 256MB 内存的虚拟机或 VPS 上用 X Window/Gnome/Thunderbird 这种组合吧).那为什么要在虚拟机上收发邮件呢,不能在自己电脑上处理邮件吗?可能有多个电脑而且电脑经常换,电脑可能被盗,硬盘可能

nagios mutt+msmtp 收到不报警邮件

问题描述: 1./nagioshome/var/nagios.log文件中显示邮件已经发出 2.root用户执行 echo "hello" |mutt -s "test"  [email protected] 可以正常发送 su - nagios -c  'echo "hello" |mutt -s "test"  [email protected]' 同样可以正常发送 3.nagios运行时发送的邮件收不到 解决思路: 以上

mutt+msmtp做linux邮件客户端

这几天领导让我部署开发部门写的一个脚本,需要把脚本生成的附件通过email发到他的邮箱里面去.那就开始干吧,因为之前一直用mail 命令来发邮件,可是这次行不通了.因为要带附件.有人告诉我mail 命令也能带附件,可是我怎么也没找到相关的参数.可又不想搭个mail服务器,因为闲麻烦.   于是就开始在网上找简单又有效的命令行客户端,还真让我找到了.那就是MUTT+MSMTP,看到网上好多文章,拿出几个来照着做了做,结果报各种各样的问题.还是自己看看具体每个参数作用吧!   经过一番整理,去掉些没

Ubuntu使用mutt收、发、回复邮件(mutt+msmtp+fetchmail+procmail

Ubuntu使用mutt收.发.回复邮件(mutt+msmtp+fetchmail+procmail): 说明:Mutt为基于文本的邮件客户端,担当邮件用户代理角色,msmtp的作用是发邮件(包括回复),fetchmail的作用是将邮件保存到本地邮箱,procmail的作用是进行邮件过滤(根据发件人.主题.关键字等对邮件进行排序.分类.整理). 软件安装:$ sudo apt-get install mutt$ sudo apt-get install msmtp$ sudo apt-get i

mutt+msmtp实现在shell环境中发送电子邮件

139邮箱收到邮件后会自动下发短信,利用这一功能可以将服务器的异常信息发信到139信箱然后手机端会接到短信提醒,达到方便管理服务器的功能. 为了避免被当做垃圾邮件拦截,提高发送成功率,我们需要安装mutt和msmtp这两个软件,另外还需要一个139邮箱,以及一个发送邮件的163邮箱. 1)下载msmtp wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0

使用mutt+msmtp在Linux命令行界面下发邮件(续)

换了新工作,好久没有更新博客了,今天继续.一年前写过一篇<使用mutt+msmtp在Linux命令行界面下发邮件>,但是最近想照着文中的办法解决新的问题时发现又有新的疑惑了,所以就有了今天这篇“续集”. 首先说说msmtp.如果你仅仅想在Linux下发送邮件,那么只靠它就能实现了,只需要配置好如何连接到相应的SMTP服务器即可,以下我就以腾讯企业邮为例,说一下具体的步骤(以下皆为root用户): 1. apt-get install msmtp 2. vi ~/.msmtprc &&a

用shell本检查日志中是否有错,有错则发邮件

#!/bin/bash#初始化环境变量source .bash_profile#日志名中的固有日期格式f_name=`date +%Y%m%d`#日志的路径及名称log_file=/backup/db/rman/log/rman$f_name-0401.logecho $log_file#统计日志文件行数#line_num=`wc -l $log_file|awk '{print $1}'`#echo $line_num#如果日志文件不存在,则直接发送邮件;否则检查文件中是否有erro和Erro