我有一个.p,我已经对变量进行了十分转换,如下所示:
DEFINE VARIABLE vEmailAdress AS CHARACTER NO-UNDO INITIAL“xyz.com”。在一些代码行之后,最后我打算邮寄一个我创建的.csv …
我觉得你的第一种方法应该有效。但在我看来,-r的末尾和电子邮件地址之间没有空格。
"New UI Report <noreply@rentokil-initial.com>"' + vEmailAdress).
那会导致 新UI Reportxyz.com)。
相反,试试吧
"New UI Report <noreply@rentokil-initial.com>" ' + vEmailAdress).
希望能帮助到你。
使用SUBSTITUTE命令.. 将var var v作为char no-undo。 v = SUBSTITUTE('echo'请参阅附件“| mail -s”测试电子邮件消息“-a /tmp/newuireport.csv -r”新UI报告“&amp; 1'vEmailAdress)。 UNIX静默值(v)。
这会对你有所帮助。
我相信你的问题很可能是你的变量之前没有空格。您可能还需要使用“user@xyz.com”而不仅仅是“xyz.com”。我会这样写你的代码:
define variable emailAdress as character no-undo initial "user@xyz.com". define variable cmd as character no-undo. cmd = echo "Please see attached report" | mail -s "Test email message" -a /tmp/newuireport.csv -r "New UI Report <noreply@rentokil-initial.com>" &1'. os-command silent value( substitute( cmd, emailAdress )).
请注意,主题文本的末尾与“&amp; 1”之间有一个空格,我认为这可能是您原始代码出错的地方。
使用SUBSTITUTE和OS-COMMAND使您的代码更加灵活和可移植 - 它不再依赖于UNIX命令,如果您这样做,您可以使用其他变量轻松地抽象命令文本。
您可能认为您的代码永远不会在其他任何地方运行,但它不需要平台中立。使用UNIX显式地将您的代码绑定到UNIX,没有充分的理由这样做。平台中立的OS- *语句现在已经使用了很长时间。至少v6,如果我没记错的话。