opennms-forge / docker-horizon-core-web

🐳 Core and Web application service for Horizon by OpenNMS
MIT License
30 stars 19 forks source link

notifd cann't send notification e-mails #32

Closed honyczek closed 6 years ago

honyczek commented 6 years ago

If I configure Opennms Horizon to send notification e-mails, mailer fails, because postfix is missing.

I've installed postfix: yum install postfix I tried to start service, but it is not possible from /etc/init.d directory. So I tried to start it with command postfix start. It failed, because of error: postfix: fatal: parameter inet_interfaces: no local interface found for ::1 I've changed one line in /etc/postfix/main.cf: sed -i 's/protocols = all/protocols = ipv4/g' /etc/postfix/main.cf Then postfix start started postfix successfully. But it will not be automatic, because /etc/init.d/postfix is missing.

Could be e-mail support added and configurable?

2018-08-28 05:33:47,529 ERROR [NotificationTask-101] o.o.j.JavaMailer: Java Mailer messaging exception: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25 (java.net.ConnectException: Connection refused (Connection refused))
javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25 (java.net.ConnectException: Connection refused (Connection refused))
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642) ~[mail-1.4.5.jar:1.4.5]
        at javax.mail.Service.connect(Service.java:251) ~[geronimo-javamail_1.4_spec-1.7.1.jar:1.7.1]
        at org.opennms.javamail.JavaMailer.sendMessage(JavaMailer.java:448) [opennms-javamail-api-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.javamail.JavaMailer.mailSend(JavaMailer.java:250) [opennms-javamail-api-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.netmgt.notifd.JavaMailNotificationStrategy.send(JavaMailNotificationStrategy.java:71) [opennms-services-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.netmgt.notifd.ClassExecutor.execute(ClassExecutor.java:69) [opennms-services-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.netmgt.notifd.NotificationTask.run(NotificationTask.java:274) [opennms-services-23.0.0-SNAPSHOT.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_181]
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_181]
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_181]
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_181]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_181]
        at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_181]
        at java.net.Socket.connect(Socket.java:538) ~[?:1.8.0_181]
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938) ~[mail-1.4.5.jar:1.4.5]
        ... 10 more

org.opennms.javamail.JavaMailerException: Java Mailer messaging exception: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25 (java.net.ConnectException: Connection refused (Connection refused))
        at org.opennms.javamail.JavaMailer.sendMessage(JavaMailer.java:458) ~[opennms-javamail-api-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.javamail.JavaMailer.mailSend(JavaMailer.java:250) ~[opennms-javamail-api-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.netmgt.notifd.JavaMailNotificationStrategy.send(JavaMailNotificationStrategy.java:71) [opennms-services-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.netmgt.notifd.ClassExecutor.execute(ClassExecutor.java:69) [opennms-services-23.0.0-SNAPSHOT.jar:?]
        at org.opennms.netmgt.notifd.NotificationTask.run(NotificationTask.java:274) [opennms-services-23.0.0-SNAPSHOT.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25 (java.net.ConnectException: Connection refused (Connection refused))
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642) ~[mail-1.4.5.jar:1.4.5]
        at javax.mail.Service.connect(Service.java:251) ~[geronimo-javamail_1.4_spec-1.7.1.jar:1.7.1]
        at org.opennms.javamail.JavaMailer.sendMessage(JavaMailer.java:448) ~[opennms-javamail-api-23.0.0-SNAPSHOT.jar:?]
        ... 7 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_181]
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_181]
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_181]
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_181]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_181]
        at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_181]
        at java.net.Socket.connect(Socket.java:538) ~[?:1.8.0_181]
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938) ~[mail-1.4.5.jar:1.4.5]
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642) ~[mail-1.4.5.jar:1.4.5]
        at javax.mail.Service.connect(Service.java:251) ~[geronimo-javamail_1.4_spec-1.7.1.jar:1.7.1]
        at org.opennms.javamail.JavaMailer.sendMessage(JavaMailer.java:448) ~[opennms-javamail-api-23.0.0-SNAPSHOT.jar:?]
        ... 7 more
indigo423 commented 6 years ago

I personally would not run postfix in the OpenNMS container, I would instead run a separate container which provides the mail service. You can use something like Mailu if you need a full fledged mail stack or a very simple postfix container image.

You need to configure your javamail properties to connect to the service name instead of the local loopback address.

honyczek commented 6 years ago

Ok, the way of javamail properties reconfiguration is better, because I already have another mail server. So would be possible to add OPENNNMS_SMTPHOST environment variable to pass the IP to javamail-configuration.properties?

indigo423 commented 6 years ago

See #33