user2133393
user2133393

Reputation: 11

Sending Gmail Error

I have a problem with sending emails. I have good SMTP and port but the message can't be sent because of this error:

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1

Here is the code:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        final String username = "[email protected]";
        final String password = "my password";
        Properties props = System.getProperties();
        props.put("mail.smtp.auth.", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "465");
        Session session;
        session = Session.getInstance(props,
                new javax.mail.Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });
        try {
            // Create a default MimeMessage object.
            MimeMessage message = new MimeMessage(session);
            // Set From: header field of the header.
            message.setFrom(new InternetAddress("[email protected]"));
            // Set To: header field of the header.
            message.setRecipient(Message.RecipientType.TO,
                    new InternetAddress("[email protected]"));
            //subject message
            message.setSubject("Help Needed");
            // Now set the actual message
            message.setText("I need help please help me with this program");
            message.setContent("<h:body style=background-color :white;font-family:verdana;color:#0066CC;>"
                    + "If you are seeing this its OK !!!<br/><br/>"
                    + "</body>", "text/html; charset=utf-8");
            // Send message
            Transport.send(message);
            System.out.println("Sent message successfully...");
        } catch (MessagingException e) {
            throw new RuntimeException(e);
            //System.out.println("MessagingException: "+mex.getMessage());
            //JOptionPane.showMessageDialog(null, "[!]Cant connect to the database.");
        }
    }                                        

Please reply if you know i asked in daniweb but there is not fast responses ... Thanks

Upvotes: 0

Views: 2972

Answers (2)

Valter Silva
Valter Silva

Reputation: 16656

I also had this problem, which was solve disabling avast and made some change at my code, which look like this:

public void simpleEmail2(String to, String subject, String message){
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");

        Session session = Session.getInstance(props,
          new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
          });

        try {

            Message mmessage = new MimeMessage(session);
            mmessage.setFrom(new InternetAddress(username));
            mmessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            mmessage.setSubject("Testing Subject");
            mmessage.setText("Dear Mail Crawler,"
                + "\n\n No spam to my email, please!");

            Transport.send(mmessage);

            System.out.println("Done");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }

Upvotes: 1

jdb
jdb

Reputation: 4509

You may want to do this:

Properties props = new Properties();
props.put("mail.smtp.auth", "true");

Instead of:

Properties props = System.getProperties();
props.put("mail.smtp.auth.", "true");

You have a dot at the end of mail.smtp.auth and using all the system properties seems like a bad idea.

Here is one example http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

Upvotes: 1

Related Questions