0

我在发送电子邮件时遇到问题。我有良好的 SMTP 和端口,但由于此错误而无法发送消息:

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

这是代码:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        final String username = "stefanrafaa@gmail.com";
        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("stefanrafa0@gmail.com"));
            // Set To: header field of the header.
            message.setRecipient(Message.RecipientType.TO,
                    new InternetAddress("stefanrafaa@gmail.com"));
            //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.");
        }
    }                                        

如果您知道我在 daniweb 中问过但没有快速回复,请回复...谢谢

4

2 回答 2

1

我也遇到了这个问题,解决了禁用问题avast并对我的代码进行了一些更改,如下所示:

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);
        }
    }
于 2013-03-23T22:45:27.823 回答
1

您可能想要这样做:

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

代替:

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

您在末尾有一个点,mail.smtp.auth并且使用所有系统属性似乎是个坏主意。

这是一个例子http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

于 2013-03-12T22:23:46.610 回答