首先,我已经看过这篇文章: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服务器不是一个选项),我该怎么办?
有人可以帮助/教我吗?
提前致谢...
答案 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项目来说是一个很好的增值。我相信如果你能重建并提交它,很多人都会受益。