如何让NAnt使用真实账户发送电子邮件

时间:2009-07-03 13:10:41

标签: nant nant-task

首先,我已经看过这篇文章:nant mail issues但唯一的答案并不令人满意(即:对我不起作用)。

我正在使用NAnt获取最新版本的源代码,升级版本的库和应用程序,构建应用程序,构建设置......所有常见的事情,我敢打赌。我希望NAnt向某些人发送电子邮件,确认构建过程的结论;我已经检查了官方(非常难看,恕我直言)documentation for the task,但这个例子,一旦被复制和定制,就不起作用了。

这是我正在使用的NAnt目标和任务:

<target name="sendMail" >
    <mail 
        from="MyUserName@gmail.com" 
        tolist="user1@provider1.com;user2@provider1.com" 
        subject="Subject of email" 
        mailhost="smtp.gmail.com"
        message="Your new release is ready!">
    </mail>
</target>

我得到的错误信息是:

  

530 5.7.0必须发出STARTTLS   先命令。

看起来该任务是为供应商不需要身份验证的帐户设计的;但如果我必须使用需要身份验证的外部smtp服务器(告诉我的老板我内部需要一个smtp服务器不是一个选项),我该怎么办?

有人可以帮助/教我吗?

提前致谢...

2 个答案:

答案 0 :(得分:9)

查看code currently in the nant-trunk,nant任务不具备身份验证功能。 根据这个knowledge base article,它甚至可以使用当前正在使用的System.Web.Mail类来完成,但是nant任务不会公开必要的属性。 所以为了回答你的问题,我认为你有以下选择:

  • 通过知识库文章中描述的技术添加对当前nant任务的身份验证支持(请务必添加 “http://schemas.microsoft.com/cdo/configuration/smtpusessl”,“true” 到消息字段),重新编译并通过loadtasks - 任务

  • 使用它
  • 通过Smtp client class创建您自己的电子邮件任务(因为System.Web.Mail可能因某种原因而被弃用)并通过loadtasks-task使用它。

<强>更新 我刚刚更改了邮件任务的实现和submitted a patch to the NAnt guys at sourceforge。如果您有兴趣,可以在那里下载文件,这样您就不必自己实现了。

答案 1 :(得分:0)

这对NantContrib项目来说是一个很好的增值。我相信如果你能重建并提交它,很多人都会受益。