使用 Java 邮件 API。javax.mail.MessagingException: 无法确定本地电子邮件地址异常



我正在使用Java Mail 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:无法确定本地电子邮件地址

来自这个问题:失败消息:javax.mail.messagingException:无法确定本地电子邮件地址

作者似乎暗示当未设置 的时,都会抛出此例外。

MimeMessage message = new MimeMessage(session);
message.addRecipient(Message.RecipientType.TO, new InternetAddress("to@gmail.com"));
message.setFrom("from@gmail.com"); // <-- add 'from' email address
message.setSubject("sub");
message.setText("msg");    
Transport.send(message);

消息说"本地电子邮件地址丢失",这意味着发送者的电子邮件地址丢失了。我认为您可以尝试这样做:

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

相关内容

最新更新