Problem sending Email using Javamail

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • creative1
    Contributor
    • Sep 2007
    • 274

    Problem sending Email using Javamail

    When I test the application I get follwowing error:
    could not connect to smtp host: connection timeout error

    can someone please check if I have rigth settings? Where I am wrong here
    Is IP and mail host setting ok or not?

    Contactus.jsp
    Code:
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN//">
    <html>
    
    <head>
    	<title>Layout template</title>
    </head>
    <link href="virsar.css" rel="stylesheet" type="text/css" />
    <body>
    <!------------------------------------------------------------------------------------------------------------------------------->
    
    													<table cellspacing=0 cellpadding=0>
    <td>------------------------------------------------------------------------------This is dedicated for the Header---------------------------------------------</td>
    													</table>
    <!------------------------------------------------------------------------------------------------------------------------------->																	
    
    
    <table cellspacing=0 cellpadding=0 width=800><!---->
    			<td width=170>
    			
    			Email: 		<br>
    			Phone: (604)270-7050			<br>
    			Toll free: 1-877-DesiORB 		<br>
    			Fax: (604)270-7062				<br>
    			
    			<br>
    			<br>
    			<br>
    			Hours of operation:				<br>
    			M-F 9:00-5:00 PST                         
    			
    			</td>
    																	
    <!-----------------------------------------contents ----------------->			
      							<td>
    	<br><br><br>
    		<h3 align="center">Send us an Email!</h3>
      	
     		<table>
    			<form method="get" action="/virsar/servlet/email.SendMailServlet">
    				<tr>
    					<td>Name : </td><td><input type = "text" name="name" size = 55 MAXLENGTH=50></td>
    				</tr>
    					<tr>
    						<td>Email Address : </td><td><input type = "text" name="emailaddress" size = 55 MAXLENGTH=50></td>
    					</tr>
    						<tr>
    							<td>Subject : </td><td><input type = "text" name="subject" size = 55 MAXLENGTH=50></td>
    						</tr>
    							<tr>
    								<td>Message / Enquiry : </td><td><textarea rows="10" name="message" cols="50"></textarea></td>
    							</tr>
    
    		<tr>
    			<td colspan = 2>
      				<p align="right"><input type="submit" value="Email" ><input type="submit" value="Reset" >
      			</td>
      			
      		</tr>
      		<tr>
      			<td>
                     <% 
                       
                       String msg= (String) session.getAttribute("msg");
                       if (msg==null)
                        {msg="";}
                      %>
                     			
      				<h3 align="center"><%= msg %></h3>
      			</td>
      		</tr>
      		
    
    </form>
                                </td>
    </table>
    <!------------------------------------------------------------------------------------------------------------------------------->
    
    									<table cellspacing=0 cellpadding=0>
    									<br><br><br><br>
    									<td>---------------------------------------------------------------Footer Goes Here----------------------------------------------------------------------</td>
    									</table>
    <!------------------------------------------------------------------------------------------------------------------------------->				
    </html>
    SendMailServlet .java
    Code:
    package email;
    
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.mail.*;
    import util.MailUtil;
    //import business.User;
    
    public class SendMailServlet extends HttpServlet{
    	
    	public void doGet(HttpServletRequest request,
    					 HttpServletResponse response) 
    					 throws IOException, ServletException{	
    		
    		HttpSession session = request.getSession();
    			String to = "farhana.asif@virsarmedia.com";
    			String from = "";
    			String subject = "";
    			String message = "";
    		    String msg="";
    		
    		from="virsarmail@gmail.com";
    	//	from = request.getParameter("emailaddress"); 
    		subject = request.getParameter("emailaddress") + " - " + request.getParameter("name") + ": " + request.getParameter("subject");
    		message = request.getParameter("message");
    		
    		//if user does not have an email address, then use the GCABC's email address as the from address
    		if (from.equals(""))
    		{
    			from = to;
    		}
    		
    	  try{
    			 MailUtil mail = new MailUtil(to, from, subject, message);
    			 mail.sendMail();
    		  	 msg = "Email sent! successfully";
    		}
    		catch (MessagingException me){
    			 log("MessagingException: " + from);
    			 msg = "Email not sent!";
    			 log(me.toString());
    		} 
    	
    		session.setAttribute("msg", msg);
    		RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/Contactus.jsp");
    		
    		dispatcher.forward(request, response);
    	 }	
    	
    	public  void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
    		doGet(request, response);
    	}
    }
    MailUtil.java
    Code:
    		
    
    package util;
    
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.Properties;
    import java.io.*;
    import java.util.*;
    
    public class MailUtil{
    
    private String sender,recipient1,mailHost,mailPort,mailProtocol,mailUser,mailPassword,mailContent,mailSubject;
    Authenticator auth;
    
    public MailUtil(String recipient, String sender,
                                    String mailSubject , String mailContent) {
    	this.sender = sender;
    	recipient1 = recipient;
    	mailHost = "209.85.171.83";
    	mailPort = "465";
    	mailProtocol = "smtp";
    	mailUser = "virsarmail@gmail.com";
    	mailPassword = "virsarmedia";
    	this.mailSubject = mailSubject;
    	this.mailContent = mailContent;
    	auth = new MyAuthenticator();
    }
    
    public void sendMail() throws MessagingException{
    try {
    	Properties props = new Properties();
    	props.setProperty("mail.transport.protocol", mailProtocol);
    
    	props.put("mail.transport.protocol", mailProtocol);
    	props.put("mail.smtp.host", mailHost);
    	props.put("mail.smtp.port", mailPort);
    	props.put("mail.smtp.user", mailUser);
    	props.put("mail.smtp.password", mailPassword);
    	props.put( "mail.smtp.auth", "true" );
    
    Session mailSession = Session.getInstance(props, auth);
    mailSession.setDebug(true);
    Transport transport = mailSession.getTransport();
    
    MimeMessage message = new MimeMessage(mailSession);
    message.setContent(mailContent, "text/plain");
    message.setSubject(mailSubject);
    message.setSender(new InternetAddress(sender));
    message.setFrom(new InternetAddress(sender));
    message.addRecipient(Message.RecipientType.TO, new
    InternetAddress(recipient1));
    
    transport.connect();
    transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO));
    transport.close();
    
    }
    catch(Exception ex) {
    System.out.println(ex.toString());
    }
    
    }
    
    
    class MyAuthenticator extends Authenticator {
    protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(mailUser, mailPassword);
    }
    }
    }
  • creative1
    Contributor
    • Sep 2007
    • 274

    #2
    I figured out the problem. Thanks for reading this thread.
    Regards

    Comment

    Working...