我正在尝试使用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]
有谁知道为什么会这样,或者如何解决?
答案 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 ° sign</body></html>
eomail
小心,只使用ASCII字符!