shell 脚本发送邮件(可带附件)

#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $DIR/../conf/shell_env.conf  #定位文件所在位置


if [ ${#1} -eq 8 ]; then
      day=$1
      ATTACHMENT=$2
      MAIL_RECV=$3
else
     echo "Error!!!"
     echo "Usage:sh yyyymmdd hh ${WORKROOT}/send_email/--/${day}/.xls @qq.com"
     exit 1
fi

arr=(${ATTACHMENT//,/ })
#${value//pattern/string}
#进行变量内容的替换,把与pattern匹配的部分替换为string的内容
#确定附件的个数

length=${#arr[@]}

if [ "${length}" -eq "1" ];then
echo "Dear all:
附件是${day}日的deeplink拆分数据


祝:工作顺利


"|mutt -c $MAIL_RECV -s "${day}日的deeplink 拆分数据" -a ${arr[0]}
fi

使用:

sh -x   要执行的文件   参数(附件所在位置    收件人,多个收件人之间用空格隔开)

sh -x      a.sh             send_email/deeplinkSplit.xls   [email protected]

mutt 用法:

语 法:

  mutt [-hnpRvxz][-a<文件>][-b<地址>][-c<地址>][-f<邮件文 件>][-F<配置文件>][-H<邮件草稿>][-i<文件>][-m<类型>] [-s<主题>][邮件地址]
  参 数:
 -a <文件> 在邮件中加上附加文件。
 -b <地址> 指定密件副本的收信人地址。
 -c <地址> 指定副本的收信人地址。
 -f <邮件文件> 指定要载入的邮件文件。
 -F <配置文件> 指定mutt程序的设置文件,而不读取预设的.muttrc文件。
 -h 显示帮助。
 -H <邮件草稿> 将指定的邮件草稿送出。
 -i <文件> 将指定文件插入邮件内文中。
 -m <类型> 指定预设的邮件信箱类型。
 -n 不要去读取程序培植文件(/etc/Muttrc)。
 -p 在mutt中编辑完邮件后,而不想将邮件立即送出,可将该邮件暂缓寄出。
 -R 以只读的方式开启邮件文件。
 -s <主题> 指定邮件的主题。
 -v 显示mutt的版本信息以及当初编译此文件时所给予的参数。
 -x 模拟mailx的编辑方式。
 -z 与-f参数一并使用时,若邮件文件中没有邮件即不启动mutt

当文件中出现格式问题时

iconv -f utf8 -t gbk send_email/deeplinkSplit1.xls -o send_email/deeplinkSplit.xls

iconv 介绍:

将文件的一种编码转化为另外一种

用法

iconv [选项...] [文件...]

选项
输入/输出格式规范:
-f  --from-code=名称 原始文本编码
-t  --to-code=名称 输出编码

信息
-l  --list 列举所有已知的字符集

输出控制
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息

mutt 的安装:https://www.cnblogs.com/nwf5d/archive/2012/04/25/2470312.html

猜你喜欢

转载自blog.csdn.net/learner_up/article/details/86304756