JavaMail无效的MSGID

时间:2012-07-31 08:41:22

标签: java email jboss javamail postfix-mta

我正在运行一个带有Postfix服务器的JBoss服务器。当我发送电子邮件时,JavaMail会创建一个无效的messageID,例如消息ID:< 47112553230.139.4972667128159.JavaMail.undefined>。

我正在使用此代码发送邮件:

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

如何解决此问题?

祝你好运, 基督教

1 个答案:

答案 0 :(得分:1)

这是我在@BillShannon的帮助下解决问题的方法:

Properties props = new Properties();
InitialContext ictx = new InitialContext(props);
Session sess = (Session) ictx.lookup("java:jboss/mail/Default");
props = sess.getProperties();
props.put("mail.smtp.host", "xxx.tld");
props.put("mail.host", "xxx.tld");
props.put("mail.from", "yyy@xxx.tld");
sess = Session.getInstance(props);