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

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

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


我该如何解决这个问题?

最好的祝福,
基督教

最佳答案

这就是我可以在@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", "[email protected]");
sess = Session.getInstance(props);

10-01 03:42