2016-09-09 13 views
13

Bu Java hizmetini dizüstü bilgisayarımda (Windows 10) veya geliştirme sunucumuzda (CentOS) çalıştırılması beklendiği gibi çalışıyor . Bizim canlı sunucuya (CentOS) üzerinde çalıştırdığınızda Ama şu hatayı alıyorum:Gettings javax.mail.MessagingException: Canlı sunucumuzda [EOF], ancak her şey dev sunucumuzda beklendiği gibi çalışıyor

09/Sep/2016 08:31:07,005 [ERROR] [pool-2-thread-2] - EmailSender: A Messaging exception occurred in EmailSender 
javax.mail.MessagingException: [EOF] 
     at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at javax.mail.Service.connect(Service.java:275) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at javax.mail.Service.connect(Service.java:156) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at com.awesomecompany.messaging.server.EmailSender.sendEmail(EmailSender.java:99) [rsrc:./:?] 
     at com.awesomecompany.messaging.server.MonitorDevicesRunnable.run(MonitorDevicesRunnable.java:82) [rsrc:./:?] 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_75] 
     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [?:1.7.0_75] 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [?:1.7.0_75] 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.7.0_75] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_75] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_75] 
     at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75] 

Benim eposta kodu:

transport.connect(host, from, password); 

: hata bu çizgisinde cereyan

public void sendEmail(User user) { 

     to[0] = user.getEmail(); 
     Properties props = new Properties(); 
     props.put("mail.smtp.host", host); 
     props.put("mail.smtp.user", from); 
     props.put("mail.smtp.password", password); 
     props.put("mail.smtp.port", "587"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.debug", "true"); 
     props.put("mail.store.protocol", "imap"); 
     subject = user.getEmailBuilder().getEmailSubject(); 

     try { 

      Session session = Session.getDefaultInstance(props, 
        new Authenticator() { 
         protected PasswordAuthentication getPasswordAuthentication() { 
          return new PasswordAuthentication(from, 
            password); 
         } 
        }); 

      MimeMessage message = new MimeMessage(session) { 
       protected void updateMessageID() throws MessagingException { 
        if (getHeader("Message-ID") == null) 
         super.updateMessageID(); 
       } 
      }; 
      message.setFrom(new InternetAddress(from)); 

      InternetAddress[] to_addresses = new InternetAddress[to.length]; 

      for (int i = 0; i < to.length; i++) { 
       to_addresses[i] = new InternetAddress(to[i]); 

      } 

      message.addRecipients(javax.mail.Message.RecipientType.TO, 
        to_addresses); 

      String messageHtml = user.getEmailMessage(); 
      message.setSubject(subject); 
      message.setContent(messageHtml, "text/html;charset=UTF-8;"); 
      message.saveChanges(); 
      user.setEmailMessageId(message.getMessageID()); 
      log.info("Email message ID: " + message.getMessageID()); 
      Transport transport = session.getTransport("smtp"); 
      transport.connect(host, from, password); 
      transport.sendMessage(message, message.getAllRecipients()); 
      transport.close(); 
      user.setEmailStatus(DistinctNotification.STATUS_SENT); 

     } catch (AddressException e) { 

      log.error("An AddressException occurred in EmailSender", e); 
      user.setEmailStatus(DistinctNotification.STATUS_READY); 
     } catch (MessagingException e) { 

      log.error("A Messaging exception occurred in EmailSender", e); 
      user.setEmailStatus(DistinctNotification.STATUS_READY); 
     } 

    } 

EDIT:

Bildiğim eski bir yapıya geri döndüm Bir gerçek, belki birkaç ay önce çalıştı. Artık çalışmıyor, aynı hatayı alıyorum.
Sunucuya erişimi olan diğer meslektaşlarım, üzerinde herhangi bir değişiklik yapmadıklarını söylüyorlar.

Bu konuda nereye gideceğim konusunda hiçbir fikrim yok. Telnet kullanarak googles sunucularıyla iletişim kurmakta sorun yaşamadım. Emin olmak için çeşitli limanlar üzerinde daha fazla kontrol yapacağım, ama sorun bu değil. DÜZENLEME 2: Burada

konu: 501-5.5.4 Empty HELO/EHLO argument not allowed, closing connection.
Ama neden bu sunucuda yalnızca olmayacaktı? konsoldan

Ek günlükleri:

DEBUG SMTP: connected to host "smtp.gmail.com", port: 587 

EHLO 
501-5.5.4 Empty HELO/EHLO argument not allowed, closing connection. 
501 5.5.4 https://support.google.com/mail/?p=helo l10sm686448lfd.19 - gsmtp 
HELO 
DEBUG SMTP: EOF: [EOF] 
09:07:00.277 [pool-2-thread-1] - A Messaging exception occurred in EmailSender 
javax.mail.MessagingException: [EOF] 
     at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at javax.mail.Service.connect(Service.java:275) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at javax.mail.Service.connect(Service.java:156) ~[jar:rsrc:mail-1.4.jar!/:?] 
     at com.watersprint.messaging.server.EmailSender.sendEmail(EmailSender.java:99) [rsrc:./:?] 
     at com.watersprint.messaging.server.MonitorDevicesRunnable.run(MonitorDevicesRunnable.java:82) [rsrc:./:?] 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_75] 
     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [?:1.7.0_75] 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [?:1.7.0_75] 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.7.0_75] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_75] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_75] 
     at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75] 
2016-09-15 09:07:00,760 ERROR Error occurred while sending e-mail notification. javax.mail.MessagingException: [EOF] 
     at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363) 
     at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838) 
     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375) 
     at javax.mail.Service.connect(Service.java:297) 
     at javax.mail.Service.connect(Service.java:156) 
     at javax.mail.Service.connect(Service.java:105) 
     at javax.mail.Transport.send0(Transport.java:168) 
     at javax.mail.Transport.send(Transport.java:98) 
     at org.apache.logging.log4j.core.net.SmtpManager.sendMultipartMessage(SmtpManager.java:241) 
     at org.apache.logging.log4j.core.net.SmtpManager.sendEvents(SmtpManager.java:150) 
     at org.apache.logging.log4j.core.appender.SmtpAppender.append(SmtpAppender.java:173) 
     at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99) 
     at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430) 
     at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409) 
     at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367) 
     at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112) 
     at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:727) 
     at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:716) 
     at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:354) 
     at com.watersprint.messaging.server.EmailSender.sendEmail(EmailSender.java:110) 
     at com.watersprint.messaging.server.MonitorDevicesRunnable.run(MonitorDevicesRunnable.java:82) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

2016-09-15 09:07:00,762 ERROR An exception occurred processing Appender SMTPAppender org.apache.logging.log4j.LoggingException: Error occurred while sending email 
     at org.apache.logging.log4j.core.net.SmtpManager.sendEvents(SmtpManager.java:153) 
     at org.apache.logging.log4j.core.appender.SmtpAppender.append(SmtpAppender.java:173) 
     at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99) 
     at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430) 
     at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409) 
     at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367) 
     at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112) 
     at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:727) 
     at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:716) 
     at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:354) 
     at com.watersprint.messaging.server.EmailSender.sendEmail(EmailSender.java:110) 
     at com.watersprint.messaging.server.MonitorDevicesRunnable.run(MonitorDevicesRunnable.java:82) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.mail.MessagingException: [EOF] 
     at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363) 
     at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838) 
     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375) 
     at javax.mail.Service.connect(Service.java:297) 
     at javax.mail.Service.connect(Service.java:156) 
     at javax.mail.Service.connect(Service.java:105) 
     at javax.mail.Transport.send0(Transport.java:168) 
     at javax.mail.Transport.send(Transport.java:98) 
     at org.apache.logging.log4j.core.net.SmtpManager.sendMultipartMessage(SmtpManager.java:241) 
     at org.apache.logging.log4j.core.net.SmtpManager.sendEvents(SmtpManager.java:150) 
     ... 18 more 
+1

[JavaMail hata ayıklama çıkışı] (http://www.oracle.com/technetwork/java/javamail/faq/index.html#debug) neyi gösterir? Canlı sunucunuzda bir güvenlik duvarı var mı? JavaMail SSS'deki [hata ayıklama ipuçları] 'ı deneyin (http://www.oracle.com/technetwork/java/javamail/faq/index.html#condebug). –

+1

Yukarıdaki hata, günlüklerdeki tek istisnadır. Özellikle JavaMail hata ayıklama çıktısını görmek için başka bir yolu var mı? Yukarıdaki hatanın bu olduğunu düşündüm. Telnet ile googles posta sunucularına bağlanabiliyorum, bu yüzden bir güvenlik duvarı sorunu ya da herhangi bir şey gibi görünmüyor. Ayrıca, bu e-posta hizmetinin eski sürümleri çalıştı ve bu konuda bir şey değiştirdiğime inanmıyorum. İlk düşüncem, kodun diğer sunucularda çalıştığı için sunucuda bir şey olmalı. Ama sorunun nerede olduğunu göremiyorum. –

+1

Yukarıdaki bağlantıdan başka bir yolu mu kastediyorsunuz? Peki, java.util.logging'i yapılandırabilirsiniz; logger detayları her paket için [JavaMail javadocs sayfaları] (https://javamail.java.net/nonav/docs/api/) adresindedir. Hata ayıklama çıktısı almıyorsanız, System.out'un nereye gittiğini bulmanız gerekir. Sorunlarınızın bazılarını düzeltebilen bu [genel JavaMail hataları] 'nı da düzeltmelisiniz (http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes). –

cevap

9

nasılsa sunucu $HOSTNAME/etc/hosts silindi. Bunun sonucunda googles sunucuları bir null veya hostname olarak boş bir değer aldı ve bağlantıyı reddetti.

+0

Günümü kurtardın! Çok teşekkür ederim! Diğer e-posta hizmetlerini de denedim, ancak ana makine adını değiştirmeden önce çalışmadılar. – MewX

+0

haha! Sorun değil. Yardım etmekten memnun oldum. –

İlgili konular