使用带有附件的sendmail发送邮件

时间:2014-06-25 13:41:13

标签: tcl sendmail

您好我正在尝试使用附件中的sendmail发送邮件。

这是我的代码如下,

set mail_ids "dinesh@mydomain.com"



set msg {From: dinesh}
set timestamp [ clock format [clock seconds] -format {%d-%m-%Y-at-%HH-%MM-%Ss} ]
append msg \n "To:$mail_ids"

append msg \n "Subject: $subject"
append msg \n "Hi,\nPlease find the report generated on $timestamp.\n"
append msg \n "\nAuto-generated email via script\n"
append msg  [ exec cat db.config | uuencode db.config ]
#append msg $report

puts "Sending mail now ..... "


exec /usr/lib/sendmail -oi -t << $msg


puts "Mail sent."

运行此操作时,我收到以下错误

wrong # args: should be "exec handle cmd"
    while executing
"exec cat db.config | uuencode db.config "
    invoked from within
"append msg  [ exec cat db.config | uuencode db.config ]"
    (file "./my_script" line 478)

我在运行脚本的当前目录中有'db.config'文件。

我在这里犯了什么错误?

提前致谢。

2 个答案:

答案 0 :(得分:0)

尝试更换:

append msg  [ exec cat db.config | uuencode db.config ]

使用:

append msg  [ exec uuencode db.config db.config ]

答案 1 :(得分:0)

我在代码中犯了一个错误。我有一个名为'exec'的proc有2个参数,我发现代码

exec /usr/lib/sendmail -oi -t << $msg

正在调用用户定义的'exec'proc,而不是tcl的exec,这就是为什么它会将错误抛出为wrong # args: should be "exec handle cmd"

Mr.Donal是对的。我犯了同样的错误。谢谢唐纳德。 :)