3

まず第一に、私はすでにこの投稿を見ました: nant mail issuesですが、唯一の答えは満足のいくものではありません (つまり、私にはうまくいきません)。

私は NAnt を使用して、ソースの最新バージョンを取得し、ライブラリとアプリケーションのバージョンをアップグレードし、アプリケーションをビルドし、セットアップをビルドします...すべての通常のこと、きっと。ビルド プロセスの完了を確認する電子メールを NAnt から何人かに送信してもらいたいと思います。taskの公式(かなり醜い、IMHO)ドキュメントをすでに確認しましたが、例をコピーしてカスタマイズすると機能しません。

これは、私が使用している 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 に答える