无法使用spring helper类发送邮件

时间:2013-09-05 21:02:30

标签: java spring email

使用以下设置(使用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

到目前为止,谷歌搜索还没有回复任何具体内容。

1 个答案:

答案 0 :(得分:1)

Gmail的SMTP服务器需要TLS / SSL。您需要setup those Session properties

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);

设置您的用户名和密码。

Here's Gmail支持页。