您好我正在尝试使用附件中的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'文件。
我在这里犯了什么错误?
提前致谢。
答案 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是对的。我犯了同样的错误。谢谢唐纳德。 :)