我可以使用NAnt查询我的数据库并将结果用作参数值吗?

时间:2010-03-26 15:55:14

标签: database email nant

我花了15分钟搜索NAnt和NAntContrib的任务列表,并搜索谷歌,但空手而归。

我想在宣传我的代码时向我系统的每个用户发送一封电子邮件。我的数据库中有一个电子邮件地址列表,我有一个正常运行的电子邮件任务。那么,我该如何连接这两个呢?

谢谢! d


当我有时间回到此状态时,我想我会通过sqlcmd.exe发出一个select语句,将结果(电子邮件地址列表)保存到文本文件中。然后,我将读取文本文件的内容,并使用其中的值来处理我的电子邮件。看起来像一个黑客 - 请告诉我有更优雅的东西......?

1 个答案:

答案 0 :(得分:3)

<target name="uat.notify">
    <exec program="${sqlcmd.exe}" commandline='-S DB_SERVER -b -o email.txt -Q "set nocount on;use DATABASE;select email_address from dbo.t_users" -h -1' />
    <foreach item="Line" in="email.txt" property="email.address">
        <if test="${string::get-length(string::trim(email.address)) > 0}" >
            <mail failonerror="false" 
                from="SENDER@DOMAIN.com" 
                tolist="${string::trim(email.address)}"
                format="Html"
                subject="test:notify"
                mailhost="MAILHOST"
            >
                <files>
                    <include name="notify.htm" />
                </files>
            </mail>
        </if>
    </foreach>
</target>