【问题标题】:Cshell Mutt send Email with StringCshell Mutt 使用字符串发送电子邮件
【发布时间】:2019-01-21 10:54:33
【问题描述】:

我在我的 Centos 5.5 上使用 .csh 脚本 - 是的:) - 使用 Mutt (V 1.5)。

好吧,我可以像这样发送电子邮件没问题:

echo "" | mutt  -s 'Subject' -i /tmp/body.txt 'test@test.com'

现在我想将上面的参数保存在一个变量中,然后用它的内容调用 mutt...

变量最后包含以下内容:

-s '主题' -i /tmp/body.txt 'test@test.com'

问题不是如何“提取”这个字符串来执行上面的命令。

我试过了:

    set MailString="-s 'Subject' -i /tmp/body.txt 'test@test.com'"

    # (Tried these, don't work)
    #echo "" | mutt `echo "$MailString"`
    #echo "" | mutt `echo $MailString`
    #echo "" | mutt echo $MailString`
    #echo "" | mutt $MailString`

【问题讨论】:

  • 为什么选择 csh?可以改写成ksh吗?
  • 我只是在寻找这一行。如果我不明白,那就直接在 mutt 之后应用它(不那么漂亮,但会起作用)
  • 这是一个常见的 bash 问题 (mywiki.wooledge.org/BashFAQ/050),但我已经 20 多年没有使用 csh 了。 “csh 被认为有害”的文章太有意义了,不容忽视;)

标签: shell unix csh mutt


【解决方案1】:

csh

希望这会有所帮助:

#!/bin/csh -f
set MailString="-s 'Subject' -i /tmp/body.txt test@test.com"
mutt ${MailString} 

${} 中写入 MailString,它应该适合你

如果您想让它更灵活:

您可以将 args 用于不同的字段:

#!/bin/csh -f

set attach_file='file.txt'
set subject='My subject'
set text_file='/tmp/body.txt'

set MailString="-a ${attach_file} -s ${subject} -i ${text_file}  test@test.com"

mutt ${MailString} 

您可以使用$1$2 等将脚本的参数推送到不同的字段...

【讨论】:

  • 我使用了 echo "" | mutt ${MailString} 就像你说的。给我:命令行错误:无效的标题字段。发送消息时出错,孩子退出 67(用户未知。)。
  • ...当我直接从控制台复制命令并手动使用 mutt 时,它可以工作
  • 你为什么在你的脚本中使用echo? -i 将文件作为文本转储到您的邮件中
  • 如果我在 .csh 文件中直接使用 mutt(不添加 echo "" |),然后从 putty 调用该 csh 文件,就像在 putty 中输入 "mutt" -> 直接将我带入mutt 程序(接口)。我的编://i.imgur.com/opUWKNA.png
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
相关资源
最近更新 更多