Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javamail赢得';不要发送主题以字母开头的邮件';n';或';N';_Java_Smtp_Jakarta Mail - Fatal编程技术网

Javamail赢得';不要发送主题以字母开头的邮件';n';或';N';

Javamail赢得';不要发送主题以字母开头的邮件';n';或';N';,java,smtp,jakarta-mail,Java,Smtp,Jakarta Mail,我对javamail有一个奇怪的问题。 当我试图发送主题以字母“n”开头的邮件时,邮件无法发送。我正在连接到smtp邮件服务器 Session session = Session.getInstance(properties); try { MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(sender)); msg.addRecipi

我对javamail有一个奇怪的问题。 当我试图发送主题以字母“n”开头的邮件时,邮件无法发送。我正在连接到smtp邮件服务器

Session session = Session.getInstance(properties);

    try {
        MimeMessage msg = new MimeMessage(session);

        msg.setFrom(new InternetAddress(sender));
        msg.addRecipients(Message.RecipientType.TO, mail_list_addresses);

        //These work!
        msg.setSubject(MimeUtility.encodeText("Pode Has Fallen Down", "utf-8", "B"));
        msg.setSubject(MimeUtility.encodeText("Fallen Down It Has", "utf-8", "B"));
        msg.setSubject(MimeUtility.encodeText("It Has Fallen Down", "utf-8", "B"));

        //These doesn't work
        msg.setSubject(MimeUtility.encodeText("Node Has Fallen Down", "utf-8", "B"));
        msg.setSubject(MimeUtility.encodeText("node Has Fallen Down", "utf-8", "B"));
        msg.setSubject(MimeUtility.encodeText("N", "utf-8", "B"));



        msg.setText(standard_msg + mqttMessage + standard_msg_end);

        SMTPTransport t = (SMTPTransport) session.getTransport("smtp");

        t.connect();
        t.sendMessage(msg, msg.getAllRecipients());
        t.close();
    } catch (MessagingException mex) {
        mex.printStackTrace();
    }catch (Exception e){
        e.printStackTrace();
    }
这些是我的SMTP设置

sender = "sender@test.com";
host = "server.adress.com";
properties = System.getProperties();

properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.port", "25");

properties.setProperty("mail.smtp.auth", "false");
properties.put("mail.smtp.ssl.enable", "false");
properties.setProperty("mail.smtp.starttls.enable", "false");

properties.setProperty("mail.debug", "true");  

properties.setProperty("mail.smtp.quitwait", "true");
有什么线索吗

或者可能只是因为我的邮件服务器不接受以字母“n”开头的主题?我尝试了不同的编码,只是使用setSubject(“whatever”),没有任何结果

编辑

邮件已发送,但已到达垃圾邮件文件夹(已隐藏,因此我没有注意到它们)

公共类MIME实用程序 *这是一个提供各种MIME相关功能的实用程序类*

根据RFC 2047,有一组方法可以对MIME头进行编码和解码。请注意,通常情况下,在以下情况下不需要这些方法: 使用setSubject和setRecipients等方法;JavaMail将 使用这些“更高级别”时自动编码和解码数据 方法


我不确定到底发生了什么,但这可能是某种“双重编码”的副作用。尝试删除对
MimeUtility.encodeText()的不必要调用。

我确实尝试过,只是使用了setSubject(“测试主题”);它适用于不以“n”开头的主题。当主题为“node is down”时,您的代码是否有任何不同之处,例如不同的主体等。邮件服务器不会拒绝以“n”开头的主题,因此它必须是其他内容的副作用。唯一的区别是邮件的实际文本发生了更改。msg.setText()查看我的编辑你能扩展到“未发送”吗?你有例外吗?哪一个?服务器是否接受邮件但从不传递?你检查过你的“垃圾邮件”文件夹了吗?您是否尝试过向其他收件人发送邮件?您使用的是什么版本的JavaMail?调试输出显示了什么?没有异常,但是我检查了垃圾邮件文件夹(被隐藏),是的,每个“未发送”的邮件都在那里。看起来我的邮件服务器有一些奇怪的垃圾邮件过滤器。