我正在运行带有Postfix服务器的JBoss服务器。当我发送电子邮件时,JavaMail会创建一个无效的messageID,例如消息ID:< 47112553230.139.4972667128159.JavaMail.undefined>。JavaMail无效MSGID
我使用这个代码发送邮件:
Properties props = new Properties();
props.put("mail.smtp.host", "xxx.tld");
props.put("mail.host", "xxx.tld");
InitialContext ictx = new InitialContext(props);
Session sess = (Session) ictx.lookup("java:jboss/mail/Default");
Transport trans = sess.getTransport("smtp");
trans.connect();
MimeMessage msg = new MimeMessage(sess);
msg.setFrom(new InternetAddress(from));
msg.addRecipients(RecipientType.TO, InternetAddress.parse(to, false));
msg.setSubject(subject);
msg.setText(message);
msg.setHeader("Content-Type", "text/html; charset=\"utf-8\"");
msg.saveChanges();
Transport.send(msg, msg.getAllRecipients());
trans.close();
主要后缀配置:
myhostname = xxx.tld
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = xxx.tld, Debian-60-squeeze-64-minimal, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 127.0.0.1
我怎样才能解决这个问题呢?
最好的问候, 基督教
是什么让你觉得消息的ID是无效的? – 2012-07-31 17:29:44
<47112553230.139.4972667128159.JavaMail.undefined>不包含顶级域名。 SpamAssasin用“INVALID_MSGID”标记邮件。 – user1565121 2012-08-01 11:27:14
你说得对,应该至少包含一个“@”。 Message ID中“未定义”的部分来自[InternetAddress.getLocalAddress](http://javamail.kenai.com/nonav/javadocs/javax/mail/internet/InternetAddress.html#getLocalAddress(javax.mail) .Session))方法;阅读javadoc的细节。据我所知,值可以是“未定义”的唯一方法是如果属性“mail.from”设置为“未定义”。如果getLocalAddress返回null,则JavaMail将使用“javamailuser @ localhost”。 – 2012-08-01 18:18:30