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
[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). –
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. –
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). –