I am currently doing summer work as a Java programmer. We have an application in which people can enter their tasks, agenda, etc. The program is a client-server program, so all data is stored on the server.
My boss asked me to create a mail notification system. For example, when a task’s deadline is close, it sends an email to the person assigned to this task.
I implemented this system on a server (which runs 24/24) using JavaMail, and it works very well. But after a while (not sure how long) JavaMail stops sending emails. This exception I get:
...
[Mailer] enqueuing mail
[Mailer] enqueuing mail
[Mailer] enqueuing mail
[Mailer] enqueuing mail
[Mailer] enqueuing mail
[Mailer] enqueuing mail
[Mailer] enqueuing mail
...
[Mailer] flushing mail queue (10 mails)
[Mailer] exception
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1446)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:736)
at javax.mail.Transport.send0(Transport.java:191)
at javax.mail.Transport.send(Transport.java:120)
at Server.Mailer.send(Mailer.java:119)
at Server.Mailer.flush(Mailer.java:84)
at Server.Mailer.run(Mailer.java:103)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1297)
... 8 more
, X , . , , SMTP- . :
Session session = Session.getDefaultInstance(properties, authenticator);
Session session = Session.getInstance(properties, authenticator);
. , JavaMail SMTP-, . , ...
- , ?
PS:
Session session = Session.getInstance(properties, authenticator);
MimeMessage message = new MimeMessage(session);
message.setSubject(mail.getSubject());
message.setContent(mail.getHTML().toString(), "text/html");
message.setFrom(mail.getSender());
message.setRecipients(javax.mail.Message.RecipientType.TO, mail.getRecipients());
Transport.send(message);