Solved

javax.mail intermittent problem

Posted on 2007-12-03
9
320 Views
Last Modified: 2010-04-21
Hi All,

We are using javax.mail to send email from our JSP application. Recently, we encountered intermittent problem. The mails were being sent from the application but the some of the recipients did not receive their mails. The mails are being sent to each of the recipients one at a time. We knew that the mail was being sent because the application will print "Mail sent successfully" otherwise it will print "Mail sent failed".

What is the likely cause of the problem? Thanks.


I have attached a sample code of sending mail.
    import java.io.*;

    import javax.mail.*;

    import javax.mail.internet.*;

    import javax.activation.*;

    

    public class SendApp {

        public static void send(String smtpHost, int smtpPort,

                                String from, String to,

                                String subject, String content)

                throws AddressException, MessagingException {

          

            try {

                // Create a mail session

                java.util.Properties props = new java.util.Properties();

                props.put("mail.smtp.host", smtpHost);

                Session session = Session.getDefaultInstance(props, null);

    

                // Construct the message

                Message msg = new MimeMessage(session);

                msg.setFrom(new InternetAddress(from));

                msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

                msg.setSubject(subject);

                msg.setText(content);

    

               // Send the message

               Transport.send(msg);

               System.out.println("\nMail sent Successfully to "+to.trim() + " email: "+subject.trim()+".");

 

           } catch (Exception e) {

		e.printStackTrace();

			

						System.out.println("\nMail sent FAILED to "+to.trim() + " email: "+subject.trim()+".");

	   }

 

        }

    

        public static void main(String[] args) throws Exception {

            // Send a test message

            send("hostname", "joe@smith.com", "sue@smith.com",

                 "re: dinner", "How about at 7?");

        }

    }

Open in new window

0
Comment
Question by:rospcc
9 Comments
 
LVL 13

Expert Comment

by:kawas
ID: 20400847
Could be spam filters ... Do the same ones fail all of the time?
0
 

Author Comment

by:rospcc
ID: 20400964
No, it was different ones. My application has two different types of emails. The two types are one with attachment and one without. The code snippet that i showed earlier is used to send mail without attachment. Most of the mails that failed are those with attachment.
0
 
LVL 92

Accepted Solution

by:
objects earned 200 total points
ID: 20401218
have u checked for bounces
and if you have access to the smtp server check its queues/logs
0
 
LVL 35

Expert Comment

by:TimYates
ID: 20401870
Can you post the code for the mails that failed?
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 35

Expert Comment

by:TimYates
ID: 20401874
Actually, I agree more with objects...  The sendmail logs will probably be the first place to check...
0
 

Author Comment

by:rospcc
ID: 20408574
sorry ...but where can i check the sendmail logs?
0
 
LVL 35

Assisted Solution

by:TimYates
TimYates earned 200 total points
ID: 20410228
On our linux system, they are located at:

  /var/log/maillog

Tim
0
 
LVL 19

Assisted Solution

by:Kuldeepchaturvedi
Kuldeepchaturvedi earned 100 total points
ID: 20415268
it depends on the host that you are using... if its connecting an outlook/lotus server , then these servers will have a que where you can check the logs

In short: whatever SMTP host you are connecting to, will have logs of the mails going thru it.
0
 

Author Closing Comment

by:rospcc
ID: 31412515
They restarted the SMTP server, and the mails can be sent out successfully again after that.
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now