使用 Java 邮件 API。javax.mail.MessagingException:

我正在使用 java 邮件 API,它在本地机器上运行良好,但是当我在服务器上部署我的 web 应用程序时,我收到一个异常,说 javax.mail.MessagingException:无法确定本地电子邮件地址。


这是我的代码


Properties props = new Properties();

    props.put("mail.smtp.host", "smtp.gmail.com");

    props.put("mail.smtp.socketFactory.port", "465");

    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

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

    props.put("mail.smtp.port", "465");


    try {

    Session session = Session.getInstance(props, new javax.mail.Authenticator() {

        protected PasswordAuthentication getPasswordAuthentication() {

            return new PasswordAuthentication("fromEmailAdd@gmail.com", "fromEmailPass");

        }

    });


        MimeMessage message = new MimeMessage(session);

        message.addRecipient(Message.RecipientType.TO, new InternetAddress("to@gmail.com"));

        message.setSubject("sub");

        message.setText("msg");    

        Transport.send(message);


        System.out.println("mail sent successfully");

    } catch (Exception e) {

        e.printStackTrace();

        throw new RuntimeException(e);


    }

下面给出的是此代码抛出的异常。


javax.mail.MessagingException:无法确定本地电子邮件地址


蝴蝶刀刀
浏览 171回答 2
2回答

明月笑刀无情

作者似乎建议在未设置from地址时抛出此异常。MimeMessage message = new MimeMessage(session);message.addRecipient(Message.RecipientType.TO, new InternetAddress("to@gmail.com"));message.setFrom("from@gmail.com"); // <-- add 'from' email addressmessage.setSubject("sub");message.setText("msg");&nbsp; &nbsp;&nbsp;Transport.send(message);

aluckdog

消息说“本地电子邮件地址丢失”,这意味着发件人的电子邮件地址丢失。我认为你可以尝试做这样的事情:JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost("mail.host.com")MimeMessage message = sender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message);helper.setFrom("from@from.address");helper.setTo("to@to.com");helper.setText("testing text");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java