【问题标题】:Use Japanese characters in subject and attach file with mailx in RedHat Linux在 RedHat Linux 中在主题中使用日文字符并使用 mailx 附加文件
【发布时间】:2017-07-29 21:47:16
【问题描述】:

我正在尝试使用mailx 命令发送带有附件(压缩)的电子邮件,但遇到了两个问题,以下是我使用的命令:

(echo "$BODY"; UUENCODE $ZIP_FILE $ZIP_FILE) \
 | mailx -s $SUBJECT_1 -r " " $SENDER $RECIPIENT

我的电子邮件主题包含空格和日文字符。

变量$SUBJECT_1有如下语句

Subject: [Budget] Subtype Error and some JAPANESE CHARECTERS

我得到以下错误:

contains invalid character '\203'

另外出于测试目的,我将SUBJECT_1的声明更改为Test Message

SUBJECT_1="Test Message"

它有效,但我只收到Test 而不是Test Message,并且在邮件中我可以在To 中看到另外两个电子邮件ID,例如Message@domain.com 和-r@domain.com

我还没有实现邮件正文,一旦主题问题得到解决,正文中也会实现相同的,因为正文也会有日文字符。

请帮我解决这个错误,如何解决以及我做错了什么

【问题讨论】:

    标签: linux bash shell mailx


    【解决方案1】:

    这里有一份你需要帮助的清单,比我想在一个阳光明媚的星期六下午详尽处理的事情还要多。但是有一些提示。

    引用你的变量。

    "$SUBJECT_1" 是单个字符串,而$SUBJECT_1 是空格分隔的单词列表。第二个字是你的邮件收件人,后面的选项也是收件人。

    主题。

    基本思想是您需要在主题中包含编码数据,因为电子邮件标头应该只包含 7 位 ASCII。

    Here 提示您如何在主题行中添加特殊字符。

    Here 是另一个提示。

    Here 是 RFC,详细描述了您需要做什么。向您最喜欢的搜索引擎询问有关“utf8 电子邮件主题”和“rfc1522”的信息可能是个好主意。

    电子邮件客户端。

    最后,与其学习如何使用 MIME,不如考虑使用mutt 而不是mailx 来发送您的邮件。 Mutt 有一个 -a 选项来添加附件,这比构建自己的标题和正文要容易得多,我什至不确定你是否能够首先使用 mailx。

    【讨论】:

    • 谢谢.. Ghoti.. 添加双引号后问题的第一部分已解决,现在检查日语字符问题,关于您 Mutt 的建议,我们是否需要实例化?这个库/功能是 Redhat Linux/bash 内置的吗?顺便说一句,让我试试这些选项,然后告诉你..
    • 很抱歉提出一些基本问题。我尝试了您提供的链接中提到的选项,如下所示$SUBJECT_1 = '=?utf-8?B?'.base64_encode($SUBJECT).'?='; 我在调用 mailx 之前将上面的代码放入了 shell 脚本中,但出现语法错误'(' 意外。
    • 别担心,我们都是从某个地方开始的。关于base64_encode(),请注意这是一个PHP 函数。这是一个提示,而不是一个指令。您需要在 bash 中找到与 PHP 函数相同的功能(从 shell 中尝试 man base64),或者将该函数的结果复制到您的 bash 脚本中。至于 mutt,它是一个附加包,很可能在 Redhat 中可用,使用您用来安装其他第三方软件的任何包管理器。安装后,运行man bash查看使用说明。
    猜你喜欢
    • 1970-01-01
    • 2019-09-11
    • 2022-12-16
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多