使用.sh文件在sendmail中的文件中发送附件

时间:2013-03-01 08:20:41

标签: email attachment sh

我想在邮件中发送附件..我使用此代码发送邮件 这是我的.sh文件,我不知道

  cat "/home/ubuntu/source_code/PCC/mail.template" |
 sed s/@SUBJECT@/"$1"/ | 
sed s~@BODY@~"$2"~ | 
sed s/@TOEMAILS@/"$3"/ | 
sed s/@CCEMAILS@/"$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

1 个答案:

答案 0 :(得分:1)

您的脚本应该可以正常运行,将命令行参数替换为套用信函模板。

尝试在“身体”中替换听起来很奇怪。

如果你真的想要发送附件而不只是在套用信函上进行替换,你应该使用mutt,elm,pine,alpine或其他一些处理MIME附件的MUA,而不是直接尝试使用sendmail。

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

不是删除临时文件,而是保存副本并进行检查,以确保您的sed编辑按预期工作。