linux sendmail_path,利用Linux调用Sendmail模块方式发邮件

利用linux调用sendmail模块方式发邮件比程序写的调用mail函数的速度要快多倍,例如发送每封促销邮件大约15秒左右,发送代码我已写成一个shell文件,通过设置要执行文件的路径便可轻松发送邮件,前提需要配置sendmail模块

#!/bin/sh

mysql -u admin -D www.linuxidc.com -padmin /backup/tmp/result   #执行sql语句读取客户email地址并将结果生成result文件里

mkdir /backup/tmp/emailpath

chmod 0777 /backup/tmp/emailpath

awk -F '[\t]' '{print $1}' result >/backup/tmp/emailpath/emailAddress   #将客户邮箱地址生成到指定的文件里,便于读取转为数组

awk -F '[\t]' '{print $2}' result >/backup/tmp/emailpath/emailBakAddress #将客户备份邮箱地址生成到指定的文件里,便于读取转为数组

EMAILADDPATH="/backup/tmp/emailpath/emailAddress"   #客户邮箱地址文件

EMAILADDBAKPATH="/backup/tmp/emailpath/emailBakAddress"  #客户备份邮件地址文件

EMAILBODY="/backup/tmp/chritmas.html"   #邮件内容文件

SUBJECT="Merry Christmas From www.linuxidc.com"   #设置邮件标题

FROM="Milky Way Jewelry - www.linuxidc.com "

echo "读取客户email"

j=0

while read line

do

let j++

emailAddressArr[$j]=$line

done < ${EMAILADDPATH}

#echo ${emailAddressArr[@]}

echo "读取客户备份email"

k=0

while read line

do

let k++

emailBakAddressArr[$k]=$line

#echo ${emailBakAddressArr[$k]}

done < ${EMAILADDBAKPATH}

#echo ${emailBakAddressArr[@]}

#统计共多少个客户

len=${#emailAddressArr[*]}

let total=len-1;

echo 共${total}位客户:

l=1

while [ $l -lt $len ]

do

let l++

toAdd="-i To:${emailAddressArr[$l]}"

if [ ["${emailBakAddressArr[$l]}" != -n] ];then

if [ "${emailBakAddressArr[$l]}" != NULL ];then

ccAdd="-i Cc:${emailBakAddressArr[$l]}"

fi

fi

let nextlmail=l-1

echo 正在发送第$nextlmail封邮件

cat ${EMAILBODY} |formail -i "From:${FROM}" -i "Sender:sales@www.linuxidc.com" $ccAdd -i "Reply-To:sales@www.linuxidc.com" $toAdd -i "MIME-Version:1.0" -i "Content-type:text/html;charset=uft-8" -i "Subject:${SUBJECT}"|/usr/sbin/sendmail -oi ${emailAddressArr[$l]}

echo 第$nextlmail封邮件发送成功!

done

以上为shell程序

注意 客户邮箱文件与客户备份邮箱需要通过自动执行上面的连接生成文件.0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值