2013-03-01 63 views
0

我想在邮件发送附件发送附件的文件中sendmail的..使用发送邮件 这段代码即时通讯这是我的sh文件,我不知道使用sh文件

cat "/home/ubuntu/source_code/PCC/mail.template" | 
sed s/@[email protected]/"$1"/ | 
sed [email protected]@~"$2"~ | 
sed s/@[email protected]/"$3"/ | 
sed s/@[email protected]/"$4"/ > /home/ubuntu/source_code/PCC/tempMail_"$5".template 
    chmod 777 /home/ubuntu/source_code/PCC/tempMail_"$5".template 
    cat /home/ubuntu/source_code/PCC/tempMail_"$5".template | 
sed 's/ */ /g' | 
sed 's%><%>\n<%g' | 
sed 's%> <%>\n<%g' > /home/ubuntu/source_code/PCC/tempMail2_"$5".template 
    chmod 777 /home/ubuntu/source_code/PCC/tempMail2_"$5".template 
    /usr/sbin/sendmail -f "$6" -t < /home/ubuntu/source_code/PCC/tempMail2_"$5".template 
    rm -rf /home/ubuntu/source_code/PCC/tempMail2_"$5".template 
    rm -rf /home/ubuntu/source_code/PCC/tempMail_"$5".template 
+0

这里有一些很多变量,sendmail的语法是次要的。你正在使用哪个MTA?任何日志?你应该改善这个问题,否则我想它会很快降低。 – kamituel 2013-03-01 08:24:11

回答

1

你的脚本应该工作确定将命令行参数替换为格式字母模板。

试图在“身体”替代听起来很奇怪。

如果你真的想发送附件,而不是仅仅在一个表单字母上进行替换,你应该使用mutt,elm,pine,alpine或其他一些MUA来处理MIME附件,而不是直接尝试使用sendmail。

请注意,除非root或其他“可信”用户运行,否则sendmail(或其他类似于/ usr/sbin/sendmail的实际工作)可能不符合“-t”标志。你不需要chmod命令,但是他们不会对你的问题做出任何贡献。

除了删除临时文件,保存副本并检查它以确保您的sed编辑按预期工作。