在Automic 12 bash中,mailx正文中的特殊字符导致正文被附加为二进制文件
问题描述:
我想通过Automic Workload Automation 12.0的bash作业使用mailx发送电子邮件。该消息需要有特殊字符,在这种情况下,百分号“°”。在Automic 12 bash中,mailx正文中的特殊字符导致正文被附加为二进制文件
对于此示例,消息应具有主体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]
有没有人知道为什么会发生这种情况,或者如何解决它?
答
Mailx是一个进化的MUA。对于刚刚发送的邮件,如果你使用sendmail
,你可以建立自己的邮件标题:
/usr/sbin/sendmail [email protected] <<eomail
To: [email protected]
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 [email protected] <<eomail
To: [email protected]
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字符有!
这不是一个错误,它是一个功能!尝试使用html'ascii编码:*'
这是°标志。'* –我按照您的建议切换到'sendmail'并使用'°'表示法。不知何故,这看起来不太令人满意,但它工作。 –
@ F.Hauri如果你想提交一个答案,我会接受它。 –