WildFly 9发送两次电子邮件

时间:2015-10-29 18:18:42

标签: java jboss javamail wildfly ejb-3.1

我有点麻烦。
我在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客户端)并发送消息 - 接收器获得一条消息,那就没关系。 有人知道发生了什么事吗? 求你帮帮我。

1 个答案:

答案 0 :(得分:4)

您的send()方法包含重复的行:

Transport.send(message);