在Automic 12 bash中,mailx正文中的特殊字符会导致正文作为二进制文件附加

时间:2017-09-14 20:05:20

标签: linux bash email mailx automic

我正在尝试使用mailx通过Automic Workload Automation 12.0的bash作业发送电子邮件。消息需要有一个特殊字符,在这种情况下百分号为“°”。

对于此示例,邮件应包含正文This is the ° sign.

我正在使用此代码发送消息。 printf '\xB0'打印°符号。

(
  printf 'This is the '
  printf '\xB0'
  printf ' sign.'
) | mailx [etc]

如果我将其直接复制并粘贴到bash终端,则电子邮件会在邮件正文中打印出特殊字符。

但是,当我在Automic bash作业中使用相同的代码时,电子邮件正文是空白的。附加了一个名为ATT00001.bin的文件。如果我使用notepad.exe打开ATT00001.bin,则该文件包含本身应该包含的文本This is the ° sign.,其中的字符应与正文中的字符完全一致。

在Automic中使用以下内容会导致使用正确的正文发送消息。没有附加文件。所以很明显,这个特殊字符引起了Automic的这个问题。

(
  printf 'This is the '
  printf 'placeholder'
  printf ' sign.'
) | mailx [etc]

有谁知道为什么会这样,或者如何解决?

1 个答案:

答案 0 :(得分:1)

Mailx是一个进化的MUA。对于仅发送邮件,如果您使用sendmail,则可以构建自己的邮件标题:

/usr/sbin/sendmail destuser@desthost <<eomail
To: destuser@desthost
Subject: Any interesting thing
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

This is the ° sign
eomail

或者您可以使用html编码:

/usr/sbin/sendmail destuser@desthost <<eomail
To: destuser@desthost
Subject: Any interesting thing
MIME-Version: 1.0
Content-Type: text/html; charset="ASCII"
Content-Transfer-Encoding: 8bit

<html><body>This is the &deg; sign</body></html>
eomail

小心,只使用ASCII字符!