2017-09-14 44 views
0

我想通过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] 

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

+0

这不是一个错误,它是一个功能!尝试使用html'ascii编码:*'这是°标志。'* –

+0

我按照您的建议切换到'sendmail'并使用'°'表示法。不知何故,这看起来不太令人满意,但它工作。 –

+0

@ F.Hauri如果你想提交一个答案,我会接受它。 –

回答

1

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 &deg; sign</body></html> 
eomail 

护理,仅使用ASCII字符有!