Java “sendmail”命令错误。获取扭曲的邮件也会添加“!”字符

Java “sendmail”命令错误。获取扭曲的邮件也会添加“!”字符,java,email,unix,sendmail,aix,Java,Email,Unix,Sendmail,Aix,我正在用Java创建用于发送电子邮件的HTML格式,并使用以下UNIX脚本发送: ( echo "Subject: Test"; echo "To: test@mail.com"; echo "MIME-Version: 1.0"; echo "Content-Type: text/html"; echo "Content-Disposition: inline"; echo ""; ca

我正在用Java创建用于发送电子邮件的HTML格式,并使用以下UNIX脚本发送:

(       echo "Subject: Test";
        echo "To: test@mail.com";
        echo "MIME-Version: 1.0";
        echo "Content-Type: text/html";
        echo "Content-Disposition: inline";
        echo "";
        cat HTML_Body
) | sendmail test@mail.com
但是当我从这个UNIX命令接收邮件时,HTML_Body被扭曲了,还有一些特殊字符,比如!随着身体的增加,一些细胞的排列也变得扭曲

当我从Java控制台复制HTML_主体时,主体被正确地创建,但是在sendmail命令之后,它被扭曲了

我使用的是outlook,Unix版本是:AIXServerName 1 6

另外,请建议通过UNIX或使用Java发送邮件的一些其他选项。我尝试从Java创建文件并将其作为附件发送,但在该文件中,内容也被扭曲了

[编辑]添加更多详细信息后,此错误与sendmail命令的解释完全相同。

sendmail行长度限制 Sendmail.org提供的Sendmail对行长度限制为990或2048字节,并打断较长的行

你可以 *使用诸如mimencode之类的工具以引用的可打印格式对正文进行编码 需要更改mime头 或 *使用像tidy这样的工具重新格式化html文件,并设置行长度限制


顺便说一句,电子邮件标题和电子邮件正文回音之间应该有一条空行。

我也遇到了长html的问题,添加了一些特殊字符。每当我在后面插入新行后,问题就消失了

我看不出这个问题是如何与Java相关的…@icza,因为正如我所说的,我正在将Java中创建的HTML_Body发送到Unix。很可能是字符编码问题。你能给我们看一下创建HTML_Body的Java代码吗?@icza我正在使用simple for循环创建并附加到StringBuffer对象,然后使用toString方法将该字符串作为HTML_Body传递,这在前面的问题中没有显示。那是原密码吗?如果没有,添加它是否会产生影响?