Build.xml无法发送电子邮件,提供“java.lang.ClassNotFoundException:javax.mail.internet.MimeMessage”错误

时间:2013-04-15 08:36:27

标签: java ant build.xml javax.mail

以下是测试完成后运行的目标之一,即buil.xml(通过或失败)。此目标失败并出现错误“java.lang.ClassNotFoundException:javax.mail.internet.MimeMessage”。所以我扩展了mail.1.4.jar文件,看到这个类就在那里。接下来我检查了这个jar是否存在于我的setclasspath目标中,它就在那里。第三件事我检查了mail.1.4.jar是否包含在蚂蚁的路径中,它就在那里。现在我无法理解为什么会收到此错误。

<target name="sendmail">
    <mail from="[myname@company.com]"
    subject="Test Email" mailhost="smpt.gmail.com" 
    user="myusername" password="mypassword" message="This is a test email">
        <to name="receivers name" address="[receiver@gmail.com]" />
    </mail>
</target>

4 个答案:

答案 0 :(得分:1)

如果Ant提供“java.lang.ClassNotFoundException:javax.mail.internet.MimeMessage”错误,则表示缺少jar。

转到findjar网站:http://www.findjar.com/,通过搜索&#34; javax.mail.internet.MimeMessage&#34;找到相应的jar。你会发现它的mail.jar。

然后从中央Maven存储库下载jar文件:https://mvnrepository.com/artifact/javax.mail/mail,例如,版本mail-1.4.7.jar,并将其放在Ant lib目录中:$ {ANT_HOME} / lib

这应该有效。

答案 1 :(得分:0)

在类路径和相关的传递依赖项中添加mail.jar。

好的,请尝试以下操作,首先在你的ant安装中,$ {ANT_HOME} / lib检查是否存在以下jar,ant-javamail,如果不是:

您可以在此处找到以下内容:http://mvnrepository.com/artifact/org.apache.ant/ant-javamail

根据你的蚂蚁版本挑选正确的。

将此jar复制到ant的lib目录中。并尝试重新运行任务。

让我们知道它是否已解决。

运行命令

ant -f %ANT_HOME%/fetch.xml -Ddest=user -Dm2.url=repo1.maven.org/maven2

答案 2 :(得分:0)

我之前从第一个线程得到了类似的错误。您可能希望将mail.jar和activation.jar下载到您的ant库文件夹下,并在执行构建时确保使用 “ant -lib”,带有lib文件夹的路径。

答案 3 :(得分:0)

如果您通过Groovy使用Ant,则可以通过@Grab添加必要的库,如下所示:

@GrabConfig(systemClassLoader=true)
@Grapes([
    @Grab(group='org.apache.ant', module='ant-javamail', version='1.10.7'),
    @Grab(group='com.sun.mail', module='javax.mail', version='1.6.2')
])