0

我在使用以下设置(使用 springframework 帮助器/包装器类)使用我的 gmail 帐户发送电子邮件时遇到问题:

JavaMailSenderImpl sender = new JavaMailSenderImpl();
         sender.setHost("smtp.gmail.com");
         sender.setProtocol("smtp");
         sender.setPort(465);
         sender.setUsername("mylogin@gmail.com");
         sender.setPassword("my_password");

         NodeRef user = personService.getPerson(userName, false);
         String fromAddress = (String) nodeService.getProperty(user, ContentModel.PROP_EMAIL);

        // Define message
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setTo("destination@address.com");
        helper.setFrom(new InternetAddress(fromAddress));

每当我发送它时,它都会挂起一段时间,并且出现以下错误:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1

到目前为止,谷歌搜索还没有返回任何具体的东西。

4

1 回答 1

1

Gmail 的 SMTP 服务器需要 TLS/SSL。您需要设置这些Session属性

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"); // different port for tls

sender.setJavaMailProperties(props);

像你一样设置你的用户名和密码。

这是Gmail 的支持页面。

于 2013-09-05T21:15:45.937 回答