JavaMail JamesServer:电子邮件被标记为垃圾邮件
从JamesServer发送的电子邮件被标记为垃圾邮件。我正在使用JavaMail连接到JamesServer以发送电子邮件 为了测试垃圾邮件,我正在使用mail-tester.com网站。此网站告诉我,该电子邮件被标记为垃圾邮件,其阈值为负,如下所示: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
-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名称)