当前位置: 首页 > 知识库问答 >
问题:

EMR内部没有smtp提供程序

宇文曦
2023-03-14

我正在尝试发送电子邮件完成的EMR工作。我在sbt依赖项中使用了libraryDependencies+=“com.sun.mail”%“javax.mail”%“1.6.2”。

20/11/21 04:28:12 WARN mail: expected resource not found: /META-INF/javamail.default.address.map
javax.mail.NoSuchProviderException: No provider for smtp
    at javax.mail.Session.getProvider(Session.java:545)
    at javax.mail.Session.getTransport(Session.java:744)
    at javax.mail.Session.getTransport(Session.java:725)
    at javax.mail.Session.getTransport(Session.java:782)
    at javax.mail.Transport.send0(Transport.java:249)
    at javax.mail.Transport.send(Transport.java:124)
    at util.EmailUtil.sendEmail(EmailUtil.java:44)
    at util.EmailUtil.sendMail(EmailUtil.java:59)
    at com.here.places.rule.testing.EmailTester$.main(EmailTester.scala:16)
    at com.here.places.rule.testing.EmailTester.main(EmailTester.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$4.run(ApplicationMaster.scala:706)
        msg.setFrom(new InternetAddress(toEmail));
        msg.setReplyTo(InternetAddress.parse(toEmail));
        msg.setSubject(subject, "UTF-8");
        msg.setText(body, "UTF-8");

        msg.setSentDate(new Date());

        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail, false));
        System.out.println("Message is ready");
        Transport.send(msg);

        System.out.println("EMail Sent Successfully!!");
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

public static void sendMail() {
    Properties props = System.getProperties();
    props.put("mail.smtp.host", "***");
    props.put("mail.smtp.port", "25");

    Session session = Session.getInstance(props, null);
    sendEmail(session, "***","SimpleEmail Testing Subject", "SimpleEmail Testing Body");
}

}`

共有1个答案

郭曾笑
2023-03-14

应用程序是使用SBT构建的,并使用下面的合并策略。

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) => MergeStrategy.discard
  case x => MergeStrategy.first
}

创建的fat jar没有javax.mail jar中必需的META_INF文件,这导致了一个问题。出于测试目的,我手动地将META-INF文件从javax.mail jar复制到fat jar中,它工作了。

 类似资料:
  • 从angular 4.4升级到5.0,并将所有HttpModule和Http更新到HttpClientModule后,我开始出现此错误。 我还再次添加了HttpModule,以确保这不是由于某些依赖关系造成的,但它并不能解决问题 应用程序内。模块,我已正确设置 我不知道这个错误是从哪里来的,或者我不知道如何去了解它。我也有一个警告(也放在下面),可能是相关的。 警告信息:

  • 我正在使用Yeoman+Angular Generator为我的应用程序,我一直在努力地跑来跑去与Jasmine相处!这就是我被困住的地方。我希望能够在Jasmine测试中使用jQuery选择器。我已经安装了和包。然后我为bower安装了它(我是新来的,我不知道应该为什么安装什么!)。我已经在中手动添加了路径,但仍然得到这样的消息: 这就是我的因果报应配置的样子:

  • 我有一个问题加载类到Angular组件。很长一段时间以来,我一直试图解决这个问题;我甚至尝试将它加入到一个文件中。我拥有的是: 一个pplication.ts 服务/名称服务。ts 我一直收到一条错误消息,说。 有人能帮我发现代码的问题吗?

  • 以下代码适用于ionic应用程序中的自定义闪屏组件,我已在其中请求服务器获取令牌和身份!使用“ionic角”:“^3.9.2” 现在,当收到身份响应时,想显示一个简单的警报!但根据API文档,我在SplashScreenComponent中注入了AlertController,在构建时,出现了以下错误!无法在internet上找到任何搜索解决方案。 AlertController错误!AlertC

  • 我是angular和jhipster的新手,我已经编辑了登录组件,添加了formbuilder和MatDialogRef,并更新了单元测试: