Невозможно прослушивать события с помощью электронной почты Apache Commons

Я отправляю электронные письма, используя библиотеку электронной почты Apache commons.

Однако я не могу прослушивать события Connection и Transport. Я добавил прослушиватели событий, используя:

email.getMailSession().getTransport().addConnectionListener(this);
email.getMailSession().getTransport().addTransportListener(this);

... но не получать никаких событий.

Мой код выглядит следующим образом:

public class MailSendTest implements ConnectionListener, TransportListener{
final Email email = new SimpleEmail();

public void sendEmail(){
    try {
        email.setHostName("smtp.host.com");
        email.setFrom("[email protected]");
        email.addTo("[email protected]");
        email.setBounceAddress("[email protected]");
        email.setSubject("Testing");
        email.setMsg("Test Message");
        email.setDebug(true);
        email.setAuthentication("[email protected]", "pass");
        email.setSslSmtpPort("465");
        email.setSocketTimeout(60000);

        email.getMailSession().getTransport().addConnectionListener(this);
        email.getMailSession().getTransport().addTransportListener(this);

        email.send();

    } catch (Exception ex) {
        JOptionPane.showMessageDialog(null, "Err : "+ex.getMessage());
    } 
}


@Override
public void opened(ConnectionEvent e) {
    System.out.println("####Connected to "+ email.getHostName());
}

@Override
public void disconnected(ConnectionEvent e) {
    System.out.println("####Disconnected from "+ email.getHostName());
}

@Override...

}

Любая помощь будет оценена по достоинству.


person Burabari    schedule 28.11.2012    source источник


Ответы (1)


Я также обнаружил, что он не может этого сделать, но после некоторых копаний... Я обнаружил, что почта общего доступа зависит от почтового API Java (mail.jar), поэтому почта общего доступа apache просто абстрагируется от того, что следует делать осторожно, если вы используете почтовый API Java.

Я предлагаю следовать тому, что делает этот учебник здесь, который создает объект сеанса, а затем извлекает из него объект Transport ... затем вы можете прикрепить свой TransportListener.

Я все еще делаю описанный выше способ в настоящее время (пока пишу это), я надеюсь, что это сработает! Кстати, используйте это для определения свойств SMTP.

Удачи

person Bromo Programmer    schedule 10.08.2013