Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 JamesServer:电子邮件被标记为垃圾邮件_Java_Email_Jakarta Mail_James_Spamassassin - Fatal编程技术网

JavaMail JamesServer:电子邮件被标记为垃圾邮件

JavaMail JamesServer:电子邮件被标记为垃圾邮件,java,email,jakarta-mail,james,spamassassin,Java,Email,Jakarta Mail,James,Spamassassin,从JamesServer发送的电子邮件被标记为垃圾邮件。我正在使用JavaMail连接到JamesServer以发送电子邮件 为了测试垃圾邮件,我正在使用mail-tester.com网站。此网站告诉我,该电子邮件被标记为垃圾邮件,其阈值为负,如下所示: -3.603 HELO_LOCALHOST HELO_LOCALHOST 我在网站上看到了helo和ehlo参数。为了覆盖helo和ehlo,我使用了“mail.smtp.localhost”属性。但我能改变ehl

从JamesServer发送的电子邮件被标记为垃圾邮件。我正在使用JavaMail连接到JamesServer以发送电子邮件

为了测试垃圾邮件,我正在使用mail-tester.com网站。此网站告诉我,该电子邮件被标记为垃圾邮件,其阈值为负,如下所示:

  -3.603        HELO_LOCALHOST      HELO_LOCALHOST
我在网站上看到了helo和ehlo参数。为了覆盖helo和ehlo,我使用了“mail.smtp.localhost”属性。但我能改变ehlo,但我不能改变helo值

如何更改helo参数的值

以下是我的java示例代码:

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import java.util.Date;
    import java.util.Properties;

    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;

    public class TestSendMail {
        private String fromEmail = "admin@xxxxxxxxxx.com";
        public void sendmail() {
            Properties properties = new Properties();

            final String smtpHost = "xxxxxxxxxx.com";
            String port = "25";
            String strHostName = smtpHost;
            try {
                strHostName = InetAddress.getLocalHost().getHostName();
                System.out.println(strHostName);
            } catch (UnknownHostException e) {
            }
            properties.put("helo", strHostName );
            properties.put("mail.host", strHostName );
            properties.put("mail.smtp.localhost", strHostName );
            properties.put("mail.smtps.localhost", strHostName);
            properties.put("mail.smtp.host", smtpHost);
            properties.put("mail.smtp.port", port);
            properties.put("mail.smtp.auth", "true");
            properties.put("mail.transport.protocol", "smtp");

            Session session = Session.getInstance(properties,
                    new javax.mail.Authenticator() {
                        protected PasswordAuthentication getPasswordAuthentication() {
                            return new PasswordAuthentication(fromEmail,"Welcome123!");
                        }
                    });

            String toEmail = "web-3a2Lxc@mail-tester.com";
            String replyTo = "noreply@" + smtpHost;
            String messageBody = "<html><body>Test body</body></html>";
            try {
                MimeMessage message = new MimeMessage(session);
                message.setSentDate(new Date());
                message.setFrom(new InternetAddress(fromEmail));
                message.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(toEmail));
                message.setSubject("Test");
                message.setReplyTo(new javax.mail.Address[]
                {
                    new InternetAddress(replyTo)
                });
                message.setContent(messageBody, "text/html");

                Transport.send(message);
                System.out.println("Message sent successfully....");
            } catch (MessagingException mex) {
                mex.printStackTrace();
                System.out.println(mex.getMessage());
            }
        }

        public static void main(String[] args) {
            TestSendMail send = new TestSendMail();
            send.sendmail();
        }
    }
导入java.net.InetAddress;
导入java.net.UnknownHostException;
导入java.util.Date;
导入java.util.Properties;
导入javax.mail.MessaginException;
导入javax.mail.PasswordAuthentication;
导入javax.mail.Session;
导入javax.mail.Transport;
导入javax.mail.internet.InternetAddress;
导入javax.mail.internet.mimessage;
公共类TestSendMail{
来自电子邮件的私有字符串=”admin@xxxxxxxxxx.com";
public void sendmail(){
属性=新属性();
最后一个字符串smtpHost=“xxxxxxxxx.com”;
字符串端口=“25”;
字符串strHostName=smtpHost;
试一试{
strHostName=InetAddress.getLocalHost().getHostName();
System.out.println(strHostName);
}捕获(未知后异常e){
}
属性。put(“helo”,strHostName);
properties.put(“mail.host”,strHostName);
properties.put(“mail.smtp.localhost”,strHostName);
properties.put(“mail.smtps.localhost”,strHostName);
properties.put(“mail.smtp.host”,smtpHost);
properties.put(“mail.smtp.port”,port);
properties.put(“mail.smtp.auth”、“true”);
properties.put(“mail.transport.protocol”、“smtp”);
Session Session=Session.getInstance(属性,
新的javax.mail.Authenticator(){
受保护的密码身份验证getPasswordAuthentication(){
返回新密码验证(从电子邮件“Welcome123!”);
}
});
String toEmail=“web-3a2Lxc@mail-tester.com”;
字符串replyTo=“noreply@”+smtpHost;
字符串messageBody=“测试体”;
试一试{
MimeMessage message=新MimeMessage(会话);
message.setSentDate(新日期());
message.setFrom(新的Internet地址(fromEmail));
message.addRecipient(javax.mail.message.RecipientType.TO,新的InternetAddress(toEmail));
message.setSubject(“测试”);
message.setReplyTo(新javax.mail.Address[]
{
新Internet地址(replyTo)
});
message.setContent(messageBody,“text/html”);
传输。发送(消息);
System.out.println(“消息已成功发送…”);
}捕获(消息例外mex){
mex.printStackTrace();
System.out.println(mex.getMessage());
}
}
公共静态void main(字符串[]args){
TestSendMail send=新建TestSendMail();
send.sendmail();
}
}
这是我从mail-tester.com获得的电子邮件日志

    Received: by mail-tester.com (Postfix, from userid 500) id F01C8A0C53;
        Fri,  5 Jun 2015 14:01:09 +0200 (CEST)
    X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail-tester.com
    X-Spam-Flag: YES
    X-Spam-Level: *****
    X-Spam-Status: Yes/6.0/5.0
    X-Spam-Test-Scores: FSL_HELO_NON_FQDN_1=0.001,HELO_LOCALHOST=3.603,
        HTML_MESSAGE=0.001,MIME_HTML_ONLY=1.105,RDNS_NONE=1.274
    X-Spam-Last-External-IP: 128.199.181.189
    X-Spam-Last-External-HELO: localhost
    X-Spam-Last-External-rDNS: 
    X-Spam-Date-of-Scan: Fri, 05 Jun 2015 14:01:09 +0200
    X-Spam-Report: *  3.6 HELO_LOCALHOST No description available.  *  0.0
     FSL_HELO_NON_FQDN_1 No description available.  *  1.1 MIME_HTML_ONLY BODY:
     Message only has text/html MIME parts  *  0.0 HTML_MESSAGE BODY: HTML
     included in message    *  1.3 RDNS_NONE Delivered to internal network by a
     host with no rDNS
    Received-SPF: None (no SPF record) identity=mailfrom;
     client-ip=128.199.181.189; helo=localhost;
     envelope-from=admin@xxxxxxxxxx.com; receiver=web-3a2lxc@mail-tester.com
    Authentication-Results: mail-tester.com; dmarc=none
     header.from=xxxxxxxxxx.com
    Received: from localhost (unknown [128.199.181.189])
        by mail-tester.com (Postfix) with ESMTP id 2B6E09F862
        for <web-3a2Lx@mail-tester.com>; Fri,  5 Jun 2015 14:01:07 +0200 (CEST)
    MIME-Version: 1.0
    X-UserIsAuth: true
    Received: from 122.175.7.239 (EHLO USER-PC) ([122.175.7.239])
        by xxxxxxxxxx-01 (JAMES SMTP Server ) with ESMTPA ID 1021366912
        for <web-3a2Lx@mail-tester.com>;
        Fri, 05 Jun 2015 08:02:40 -0400 (EDT)
    Date: Fri, 5 Jun 2015 17:32:44 +0530 (IST)
    From: admin@xxxxxxxxxx.com
    Reply-To: noreply@xxxxxxxxxx.com
    To: web-3a2Lx@mail-tester.com
    Message-ID: <17905416.0.1433505764473.JavaMail.USER@USER-PC>
    Subject: Test
    Return-Path: admin@xxxxxxxxxx.com
    Content-Type: text/html; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    <html><body>Test body</body></html>
接收:通过mail-tester.com(后缀,来自userid 500)id F01C8A0C53;
2015年6月5日星期五14:01:09+0200(CEST)
X-Spam-Checker-Version:SpamAssassin 3.4.0(2014-02-07)在mail-tester.com上
X-Spam-Flag:是
X级:*****
X-Spam-Status:是/6.0/5.0
X-Spam-Test-Scores:FSL_HELO_NON_FQDN_1=0.001,HELO_LOCALHOST=3.603,
HTML\u MESSAGE=0.001,MIME\u HTML\u ONLY=1.105,RDNS\u NONE=1.274
X-Spam-Last-External-IP:128.199.181.189
X-Spam-Last-External-HELO:localhost
X-Spam-Last-External-rDNS:
扫描日期:2015年6月5日星期五14:01:09+0200
X-Spam-Report:*3.6 HELO_LOCALHOST无可用说明。*0
FSL\u HELO\u非FQDN\u 1无可用说明。*1.1仅MIME_HTML_正文:
邮件仅包含文本/html MIME部分*0.0 html_邮件正文:html
包含在消息*1.3 RDNS_NONE中,通过
没有RDN的主机
收到的SPF:None(无SPF记录)identity=mailfrom;
客户端ip=128.199.181.189;helo=localhost;
信封=admin@xxxxxxxxxx.com; 接收器=网络-3a2lxc@mail-tester.com
验证结果:mail-tester.com;dmarc=无
header.from=xxxxxxxxx.com
接收:来自本地主机(未知[128.199.181.189])
通过mail-tester.com(Postfix),ESMTP id为2B6E09F862
对于2015年6月5日星期五14:01:07+0200(CEST)
MIME版本:1.0
X-UserIsAuth:true
收到:来自122.175.7.239(EHLO用户PC)([122.175.7.239])
由XXXXXXXXX-01(JAMES SMTP服务器)使用ESMTPA ID 1021366912
对于
2015年6月5日星期五08:02:40-0400(美国东部时间)
日期:2015年6月5日星期五17:32:44+0530(IST)
发件人:admin@xxxxxxxxxx.com
答复:noreply@xxxxxxxxxx.com
收件人:web-3a2Lx@mail-tester.com
消息ID:
主题:测试
返回路径:admin@xxxxxxxxxx.com
内容类型:text/html;字符集=美国ascii码
内容传输编码:7bit
试验体

非常感谢您的帮助。

您是否使用JavaMail将消息发送到Apache James服务器,然后服务器将消息发送到mail-tester.com?如果是这样,您需要担心的是ApacheJames配置,而不是JavaMail配置。请注意,在单个SMTP会话中仅使用HELO或EHLO中的一个

在与mail-tester.com通信时,您的Apache James服务器似乎正在使用HELO,并且没有使用服务器的DNS全名正确标识自己。确保您的服务器有一个DNS名称(而不仅仅是DNS名称)