0

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

This is the ° sign.对于这个例子,消息应该有 body 。

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

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

如果我将其直接复制并粘贴到 bash 终端中,则电子邮件可以正常发送,并且邮件正文中打印有特殊字符。

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

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

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

有谁知道为什么会发生这种情况,或者如何解决它?

4

1 回答 1

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 字符!

于 2017-09-15T10:35:46.337 回答