Я создаю динамический веб-проект в Eclipse Kepler под Windows, который отправит электронное письмо на какой-то адрес. Я добавил "activ.jar" & "javax.mail-1.5.1.jar" в моей папке с папкой. Проблема в том, что в первый раз, когда я ее запустил, он работал нормально. Но через несколько дней, когда пытался снова отдыхать, он показывает следующее исключениеTransport.send (message) throwing NoSuchProviderException
javax.mail.NoSuchProviderException: smtp
at javax.mail.Session.getService(Session.java:800)
at javax.mail.Session.getTransport(Session.java:736)
at javax.mail.Session.getTransport(Session.java:676)
at javax.mail.Session.getTransport(Session.java:656)
at javax.mail.Session.getTransport(Session.java:713)
at javax.mail.Transport.send0(Transport.java:248)
at javax.mail.Transport.send(Transport.java:124)
at com.uks.pms.common.mail.dao.MailDAO.sendEmail(MailDAO.java:183)
at com.uks.pms.user.attendance.action.ATUpdateAction.update(ATUpdateAction.java:188)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
...................................................
Метод, который я написал для выполнения действия является следующим образом-
public void sendEmail(MailBean mailConfig, String fromID, String toID,
String ccTo, StringBuffer mailContent) throws AddressException,
SendFailedException, MessagingException, Exception {
javax.mail.Session session = null;
MimeMessage mimeMessage = null;
try {
session = getSession(mailConfig);
mimeMessage = new MimeMessage(session);
mimeMessage.setFrom(new InternetAddress(fromID));
mimeMessage.addRecipient(Message.RecipientType.TO,
new InternetAddress(toID));
mimeMessage.setSubject(MailUtil.MAIL_CONTENT_SUBJECT);
if (!(ccTo == null || ccTo.isEmpty())) {
mimeMessage.addRecipient(Message.RecipientType.CC,
new InternetAddress(ccTo));
}
mimeMessage.setText(mailContent.toString());
mimeMessage.setContent(mailContent.toString(),
MailUtil.MAIL_CONTENT_TYPE);
Transport.send(mimeMessage);
System.out
.println("IF YOU ARE SEEING THIS MESSAGE THEN IT MEANS YOU HAVE SUCCESSFULLY SENT THE EMAIL");
} finally {
System.gc();
}
}
private javax.mail.Session getSession(MailBean mailConfig) throws Exception {
Properties properties = null;
javax.mail.Session session = null;
try {
properties = System.getProperties();
properties.setProperty(MailUtil.KEY_MAIL_SMTP_PORT,
mailConfig.getPortNo());
properties.setProperty(MailUtil.KEY_MAIL_SMTP_HOST,
mailConfig.getMailServer());
session = javax.mail.Session.getDefaultInstance(properties);
} finally {
System.gc();
}
return session;
}
где число порта 587 & хост 172.51.10.40 в сети. Я использую hmailserver
в качестве почтового сервера без аутентификации & все настройки брандмауэра установлены правильно. Я не мог понять, где возникла проблема. Пожалуйста, дайте некоторое решение. Если какая-либо другая информация требуется, сообщите мне об этом.
Спасибо!
Есть ли у вас какие-либо другие версии той же банки в вашем пути к классу? Извините, я удалил свой предыдущий комментарий как smtp.jar, требуемый в более ранних версиях javax.mail –
Нет. Только упомянутые две банки добавлены. Даже он отлично работает, когда я запускаю его как простую программу Java. Но не работает в веб-проекте. –