1

我在 Eclipse 中使用 Ant 打包编译后的代码,并通过电子邮件将其发送到我的存储服务器。为此,我使用以下目标。不幸的是,每当我激活SSL该参数时mailport,都会省略该参数,而是使用标准端口 465。但服务器实际上配置为使用25SSL 端口。

<target name="Send mail" depends="zip">
    <echo>Sending mail</echo>
    <mail mailhost="mail.provider.net" password="XXXX" ssl="true" mailport="25" subject="nightly build">
      <from address="me@provider.net"/>
      <replyto address="me@provider.net"/>
      <to address="storage@provider.net"/>
      <message>The nightly build has completed</message>
      <attachments>
        <fileset dir="./src/">
          <include name="src.zip"/>
        </fileset>
      </attachments>
    </mail>
</target>

运行时出现以下错误

发送电子邮件失败:无法连接到 SMTP 主机:mail.provider.net,端口:465

在2010 年的https://issues.apache.org/bugzilla/show_bug.cgi?id=49267上,据说 Ant 版本 1.8.1 中存在这样的错误,已在 1.8.2 中修复。我有带有 Ant v 1.8.3 的 Eclipse Juno SR2。

4

1 回答 1

1

看来您可以重新打开该错误,因为:

  1. 开发人员未对其进行适当测试
  2. 查看JavaMail源代码(邮件蚂蚁任务的底层实现),我发现了这个:

    port = PropUtil.getIntSessionProperty(session, "mail." + name + ".port", -1); //where name is 'smtp' or 'smtps' or ...

  3. 查看与错误49267相关的更改:

    props.put("mail.smtp.socketFactory.port", String.valueOf(port));

结论,似乎补丁是错误的,必须是:

props.put("mail.smtp.port", String.valueOf(port));

编辑

错误重新打开,现在可能已修复

于 2013-09-19T10:45:50.170 回答