我有点麻烦。
我在wildfly 9上配置了邮件会话。
<subsystem xmlns="urn:jboss:domain:mail:2.0">
<mail-session name="AppSrvMail" jndi-name="java:jboss/mail/AppSrvMail">
<smtp-server outbound-socket-binding-ref="mail-smtp" ssl="false" username="app-srv@example.com" password="example"/>
</mail-session>
</subsystem>
...
<outbound-socket-binding name="mail-smtp">
<remote-destination host="host.example.com" port="25"/>
</outbound-socket-binding>
之后我注入无状态bean资源:
@Resource(name = "java:jboss/mail/AppSrvMail")
private Session session;
和方法:
@Override
public void send(String address, String topic, String textMessage) {
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("app-srv@example.com"));
Address toAddress = new InternetAddress(address);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(topic);
message.setContent(textMessage, CONTENT_TYPE_HTML);
Transport.send(message);
Transport.send(message);
} catch (MessagingException e) {
LOG.log("Cannot send mail", e);
}
}
在那之后,代码正常,但是我发送的所有接收器都有双重消息。确实,wilfly发送了两次相同的电子邮件 如果我将此帐户连接到客户端(例如,linux中的evolution客户端)并发送消息 - 接收器获得一条消息,那就没关系。 有人知道发生了什么事吗? 求你帮帮我。
答案 0 :(得分:4)
您的send()
方法包含重复的行:
Transport.send(message);