Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Must issue a STARTTLS command first

tahirakramAug 11 2006 — edited Oct 5 2009
Hello members

I am trying very much but coudlnt get out of it I m running an example : http://www.vipan.com/htdocs/javamail.html with some property modificationand n introduces smtpauthicator class.

using Gmail SMTP, I just want to check the running code later I will manage my own SMPT server.

from most of the posts on this prpblem I improve my code but couldnt successful

I have set
props.put("mail.smtp.starttls.enable","true");
also
java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
has checked with both
Session session = Session.getInstance(props , auth);
Session session = Session.getDefaultInstance(props);
my complet code is here:
import...
public class TestEmail extends HttpServlet {
	
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html");
		PrintWriter out = resp.getWriter();
		out.println("<h1>Webmail</h1>");
	
		// SUBSTITUTE YOUR EMAIL ADDRESSES HERE!!!
		String to = "to.email@gmail.com";
		String from = "from.email@gmail.com";
		// SUBSTITUTE YOUR ISP'S MAIL SERVER HERE!!!
		String host = "gmail-smtp.l.google.com";//"gmail-smtp.l.google.com";
		java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

		// Create properties, get Session
		Properties props = new Properties();

		// If using static Transport.send(),
		// need to specify which host to send it to
		props.put("mail.transport.protocol", "smtp");
		props.put("mail.smtp.starttls.enable","true");
		props.put("mail.smtp.port","587");
		props.put("mail.smtp.host", host);
		props.put("mail.smtp.auth", "true");
		// To see what is going on behind the scene
		props.put("mail.debug", "true");
		
		
		try {
			Authenticator auth = new SMTPAuthenticator();
			Session session = Session.getInstance(props , auth);

			// Instantiatee a message
			Message msg = new MimeMessage(session);

			// Set message attributes
			msg.setFrom(new InternetAddress(from));
			InternetAddress[] address = { new InternetAddress(to) };
			msg.setRecipients(Message.RecipientType.TO, address);
			msg.setSubject("Test E-Mail through Java");
			msg.setSentDate(new Date());

			// Set message content
			msg.setText("This is a test of sending a "
					+ "plain text e-mail through Java.\n" + "Here is line 2.");

			// Send the message
			out.println("preparing to send<br>");
			Transport.send(msg);
		} catch (MessagingException mex) {
			// Prints all nested (chained) exceptions as well
			//mex.printStackTrace();
			out.println(mex.toString());
		}

	}

}


class SMTPAuthenticator extends javax.mail.Authenticator {
	 
	public PasswordAuthentication getPasswordAuthentication() {
		String username = "from.email@gmail.com";
		String password = "password";
		return new PasswordAuthentication(username, password);
	}
}
I m sure I got solution from u ppl.

Thx in advance

- Tahir
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 2 2009
Added on Aug 11 2006
20 comments
911 views