通过java遇到错误发送邮件

时间:2015-05-11 17:58:59

标签: java javamail

现在有一天,我面临着一个非常奇怪的问题&那是在发送邮件期间 这很奇怪,因为当我在localhost上测试我的应用程序时,一切都很完美,但是当我部署我的应用程序时,它能够发送邮件。

你们也可以检查一下 http://www.mkjit-solutions.com/app/jsf/Contactus.xhtml

我看到了这个例外:

javax.mail.SendFailedException: Sending failed; nested exception is:
class javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. yv6sm13782372pac.29 - gsmtp 

我使用的代码是

props.put("mail.smtp.host", "smtp.gmail.com"); 
props.put("mail.smtp.port", "587"); 
props.put("mail.debug", "true"); 
props.put("mail.smtp.auth", "true"); 
props.put("mail.smtp.starttls.enable", "true");


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

        customMsg += "3 - ";

        try {

                        customMsg += "3.1 - ";
            Message message = new MimeMessage(session);

                        customMsg += "3.2 - ";
            message.setFrom(new InternetAddress(userAddress));

                        customMsg += "3.3 -  ";
                        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(toAddress));

                        customMsg += "3.4 -  ";
                        message.setSubject(subject);

                        customMsg += "3.5 -  ";
                        message.setText(msg);

                        customMsg += "3.6 -  ";
 Transport transport = session.getTransport("smtp");
            Transport.send(message);

                  customMsg += "4 -  ";


                    System.out.println("ua"+userAddress);
                    System.out.println(""+userPassword);
                    System.out.println("ta"+toAddress);




                  System.out.println("Done");
                        flag = true;
                        customMsg += " [Value of Flag "+flag+"] ";
        } 
                catch (Exception ex) 
                {
                    System.out.println("");
                    ex.printStackTrace();
                    flag = false;
                    customMsg += " [Value of Flag "+flag+"] ";
                    this.e = ex;
                    //throw new RuntimeException(e);

        }

                return flag;

1 个答案:

答案 0 :(得分:1)

首先修复这些common mistakes

Gmail示例代码位于JavaMail FAQ

如果仍然无法使其发挥作用,请按照debugging tips进行操作,然后发布结果。