【发布时间】:2013-08-28 07:37:27
【问题描述】:
尝试使用SendGrid 发送电子邮件,使用here 所示的代码示例,它只是声明我需要“Java Mail”。
我去了here 并下载了Java Mail 1.4.7。在那个 ZIP 文件里面是:
mail.jarlib/dsn.jarlib/gimap.jarlib/imap.jarlib/mailapi.jarlib/pop3.jarlib/smtp.jar
我倾向于将所有 7 个 JAR 放在我的运行时类路径中,但 mailapi.jar 和 mail.jar 似乎包含许多相同的类。
所以我问:当需要 Java Mail 时,哪些 JAR 需要位于运行时类路径中 - 为什么?
这适用于在 Tomcat 7 上运行的 Java Web 应用程序。
【问题讨论】:
-
您应该检查您正在使用的 api。在此基础上,您可以决定可以省略哪些罐子。
-
根据我提供链接的代码示例,我需要导入
javax.mail.*、javax.mail.internet.*、javax.mail.Authenticator和javax.mail.PasswordAuthentication。 最重要的是,我需要了解何时使用mail.jar以及何时使用mailapi.jar就足够了,因为它们是两个具有冲突类的 JAR。 -
另外,即使我需要导入的所有类都在
java.mail包下,我不确定这些类是否会传递使用其他 JAR(我假设它们会这样做)。跨度> -
使用上面提供的包/类,我认为只使用 mail.jar 就可以了。
-
感谢@GV (+1) - 我一定会试一试,但这个问题的核心是:为什么我应该使用
mail.jar而不是mailapi.jar?再次感谢!
标签: java smtp classpath jakarta-mail sendgrid