sendEmail
是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择 或者使用脚本临时发送批量邮件
#下载安装包
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
#解压
tar zxf sendEmail-v1.56.tar.gz -C /usr/src/
#进入解压目录
cd /usr/src/sendEmail-v1.56/
#复制程序到指定目录
cp -a sendEmail /usr/local/bin/
#安装
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
#创建发件记录日志文件
mkdir -p /var/log
touch /var/log/sendMyEmail.log
#发送邮件
/usr/local/bin/sendEmail -f a@163.com -t b@163.com -s smtp.163.com -u "xxxxxxxx" -xu a@163.com -xp password -m "'$b'" -l /var/log/sendMyEmail.log -o tls=no -a 附件.docx
返回:Aug 03 07:48:14 localhost sendEmail[18425]: Email was sent successfully! 成功
注意:
如果有以下报错
"invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 444."
1、卸载现有的perl版本,安装老版本(不推荐)
2、增加参数-o tls=no 选项
脚本批量发送邮件
创建 user.txt
内容例如:
xiaoming xiaoming@163.com xxxxxooooo
xiaohong xiaohong@163.com ooooxxxxxx
创建脚本 sendemail.sh
#!/bin/bash
while read line
do
a=`echo $line |awk '{print $2}'`
b=`echo $line |awk '{print "username:"$2" password:"$3}'`
/usr/local/bin/sendEmail -f a@163.com -t $a -s smtp.163.com -u "xxxxx" -xu a@163.com -xp password -m "'$b'" -l /var/log/sendMyEmail.log -o tls=no -a 附件.docx
done < user.txt
执行脚本:bash sendemail.sh
Aug 03 07:48:14 localhost sendEmail[18425]: Email was sent successfully!
/usr/local/bin/sendEmail 命令主程序
-f a@163.com 发件人邮箱
-t b@163.com 收件人邮箱
-s smtp.163.com 发件人邮箱的smtp服务器
-u "我是邮件主题" 邮件的标题
-o message-content-type=html 邮件内容的格式,html表示它是html格式
-o message-charset=utf8 邮件内容编码
-xu a@163.com 发件人邮箱的用户名
-xp 123456 发件人邮箱密码
-m "邮件内容" 邮件的具体内容
-l /var/log/sendMyEmail.log 邮件发送日志记录到日志文