我想发送邮件注册后但它会抛出异常?

时间:2016-02-20 07:46:17

标签: spring-security

    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom("xxxxxx@gmail.com");
    message.setTo("abc@gmail.coom");
    message.setSubject("Hello Test Mail");
    message.setText("Hello How r u?");

        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        /*mailSender.setHost("smtp.gmail.com");*/
        mailSender.setPort(287);
        //Set gmail email id
        mailSender.setUsername("xyz@gmail.com");
        //Set gmail email password
        mailSender.setPassword("123");

        Properties prop = mailSender.getJavaMailProperties();
        prop.put("mail.transport.protocol", "smtp");
        prop.put("mail.smtp.host", "smtp.gmail.com");
        prop.put("mail.smtp.auth", "true");
        prop.put("mail.smtp.starttls.enable", "true");
        prop.put("mail.debug", "true");
        prop.put("mail.smtp.port", "587");

     try{
         mailSender.send(message);
     }
     catch (MailException ex) {
         // simply log it and go on...
         System.err.println(ex.getMessage());
     }

但是给了我以下异常

邮件服务器连接失败;嵌套异常是javax.mail.MessagingException:无法连接到SMTP主机:smtp.gmail.com,port:287;

嵌套异常是:     java.net.ConnectException:连接超时:连接。     消息失败:
    javax.mail.MessagingException:无法连接到SMTP     主持人:smtp.gmail.com,端口:287;

nested exception is:
java.net.ConnectException: Connection timed out: connect

1 个答案:

答案 0 :(得分:0)

端口587是使用Google Gmails SMTP服务器(使用TLS)的端口。

您正在287对象中将端口设置为mailSender

删除该setter,它应该使用配置的prop.put("mail.smtp.port", "587");发送邮件。