3

首先,我已经看过这个帖子:nant mail issues but only answer is not令人满意(即:不适合我)。

我正在使用 NAnt 来获取最新版本的源代码,升级库和应用程序版本,构建应用程序,构建设置......我敢打赌,所有常见的事情。我希望 NAnt 向某些人发送一封电子邮件,确认构建过程的结束;我已经检查了该任务的官方(非常丑陋,恕我直言)文档,但是该示例一旦复制和定制,就不起作用。

这是我正在使用的 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 服务器不是一种选择)?

有人可以帮助/教我吗?

提前致谢...

4

2 回答 2

9

查看当前在 nant-trunk 中的代码,nant 任务不具有身份验证功能。根据这篇知识库文章,即使使用 nant 当前使用的 System.Web.Mail 类也可以完成,但 nant 任务没有公开必要的属性。因此,要回答您的问题,我认为您有以下选择:

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

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

更新: 我刚刚更改了邮件任务的实现并向sourceforge 的 NAnt 人员提交了一个补丁。如果您有兴趣,您可以在那里下载该文件,这样您就不必自己实现它。

于 2011-03-20T11:44:00.480 回答
0

这对 NantContrib 项目来说将是一个巨大的增值。如果您可以重建并提交它,我相信很多人都会受益。

于 2010-05-17T20:06:46.507 回答