应用程序不是从Java.Mail API

时间:2018-02-15 02:28:34

标签: java

我正在尝试通过我的应用程序发送电子邮件。但是,有一个问题。每当我创建一个具有此代码的方法时

public void sendEmail() {
    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");

    Session session = Session.getDefaultInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("username","password");
                }
            });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("from@no-spam.com"));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("to@no-spam.com"));
        message.setSubject("Testing Subject");
        message.setText("Dear Mail Crawler," +
                "\n\n No spam to my email, please!");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

应用程序无法启动。即使我没有调用sendEmail();方法。但是,如果我注释掉整个方法,我的应用程序可以从build .jar文件中运行而没有任何问题。

但是,我注意到如果我通过Intellij运行应用程序,并且正在调用该方法,它将正常工作,我可以发送电子邮件。

0 个答案:

没有答案