2009-03-09 11 views
4

当社のビジネスは毎週膨大な数の加入者にニュースレターを送ります。私が参加する前にビジネスが非常に若かったとき、彼らは5Kのメールを送るために6時間かかっていた大量メールの「フリー」バージョンを使用し、インターネット上のすべての逆DNSチェックに惑わされました。.NetのIIS SMTPサーバーとの意味のある相互作用

これは正しいサーバーで実行された別注の.Netウィジェットにアップグレードされ、完全なDNS準拠で30分で約20kのメールを送信することができました。残念ながら(またはあなたの立場に応じて幸いなことに)、私たちのメールリストはこの単純なツールを上回っています。特に、十分なスロットリングがないため、サーバーが快適に一度に送信できるメールより多くのメールを作成できます。私は実際にIIS SMTPサーバーの利用可能な送信メールストレージ割り当てがどのくらいあるかを監視し、それに応じて負荷を調整する必要があります。

残念ながら、メールオブジェクトがメールに変換されたとき(または送信されたとしても)、メールオブジェクトがどこに行くかについての情報はありません。見る場所があればファイルシステムウォッチャーを実装することができますが、現在はそうしていません。実際のメールファイルが作成されていない場合は、機能を実装するために作成する必要がありますが、どこに置くべきかを知る必要があります。システムが何らかの形で送信を確認できるようにすることがさらに安心ですが、メールが送信されたというシステムからデータを取得する方法についてはわかりません。

広範なグーグルは、これらの点ではっきりしていません。だから私はどこの人がこれらの問題のガイドを得ることができるかを知っていたのか、そうでなければ正しい方向に向けることができるのだろうかと思っていた。

多くのありがとうございます。

EDIT:最後に、IIS SMTPサーバーのスループットを悪いジョブとして測定しようとしました。ちょうど遊びたいとは思わなかった。私は今、別の場所で私のロギングを実行しています。その後、それをSMTPサーバーに送ります。私はまだIIS SMTPサーバーの動作を監視しようとすることに迷惑をかける人は誰も知らないので、この執筆時点でのこの質問には答えられません。

まあ

...

答えて

7

わかりましたので、私は今の年齢のため、このプロジェクトに取り組んできたと私は私が世界と私の調査結果を共有するかもしれないと思いました。

IIS SMTPサーバー

すべてのメールは、IIS SMTPサーバーを使用して作成されたピックアップディレクトリに、最初のインスタンスでは、送信されます。メールを1通送っているのなら、Matrixタイムで実際にそれを見るために操作しなければならないでしょう。それはおそらくちょうどすぐに行くからです。

個々のメールの邪魔になると、IISのキューフォルダを通過します。

このプロセスを監視するためにパフォーマンスカウンタを監視する場合は、「リモートキューの長さ」を参照してください。この理由は、「ローカルキュー長」がネットワーク内の「ローカル」で送信されたメールを監視しているからです。この例では「リモート」は「外部に」という意味です。ローカルメールはありませんが、サーバー上のIISの特定のインストールまたはそのローカルグループに含まれるメールボックスにキューイングされることを意味します。) Exchangeドメインと、そのドメインからより広い世界に送信されたもの。

とにかく。リモートキューの長さは、すべての話を伝えません。また、リモート再試行キュー、現在のアウトバウンド接続の数、キューディレクトリの実際のファイル数を考慮してベルトとブレースを調べる必要があります。

はここだ理由:

  • リモート・キュー: はまだ送信されていないすべてのメッセージ、これが試みられている しかし何回も。開いている 接続に現在割り当てられている メールの数は、 が「試行中」の状態にあるためカウントされません。
  • リモート再試行キュー: がまだ送信されていないメッセージのうち、過去に何度か に、 が割り当てられています。 明らかに、配信には が失敗しているか、メッセージが に配信されている必要があります。 のメッセージは現在、 再試行のために開いている接続に割り当てられていません。
  • 現在のアウトバウンド接続: サーバーがキュー のメールを送信しようとしているときに、複数のメッセージを送信接続に割り当てることができます( )。 このように割り当てられたメッセージは、リモートキューまたは リモート再試行キューでカウントされた ではありません。物理
  • キューディレクトリ内のファイル: には、まだキューディレクトリ にあるメールの数が表示されます。これにより、 が届きました。 が届きました。

例:あなたはキューディレクトリに0アウトバウンド接続と50通のメールを持っている場合は、リトライフラグが立っているときは、リモート・キュー、再試行キューおよび物理的なファイルはすべて50で読み込みます(これは設定ですIISでは)接続数が増え、キュー内のメール数が減少します。メールが配信されるまで、物理ファイルの数は変わりません。ただし、1つの接続で1つ以上のメールを送信できる場合は、リモートキューと再試行キューの長さが47以下になることがあります。再試行イベント中にメールが正常に配信されると、Queueディレクトリ内の物理ファイルの数が減少します。接続が閉じると、キューカウンタはすべて安定します。それがで可能です

ロギング

。NetのMailライブラリを使用して、IISのデフォルトとは別のピックアップディレクトリを指定します。ここでは、メールをキューに入れ、注文サービスを利用して、IISサービスが引き継ぎ、キューに入れられたメールを送信するIISディレクトリにメールを移動することがあります。

これを行うには、SmtpDeliveryMethod.SpecifiedPickupDirectoryに設定する必要があるSmtpClientオブジェクトの "DeliveryMethod"プロパティを探します。

実際にSpecifiedPickupDirectoryを設定するには、SmtpClientのPickupDirectoryLocationプロパティを設定する必要があります。

メールがこの場所に配信されると、それらは.emlファイルとして保存されます。ファイル名はGUIDです。これは、複数の電子メールが本質的にランダムな順序で発送されることを意味します。理論的には、必要に応じてこの状況に対処するコードを書くことができます。 .emlファイルは、メモ帳で.emlを開いて読むことができる標準形式に従います。これを解析すると、ログの情報を抽出できます。

IISのSMTPサーバーがどのように動作するかについてのこの高度な概要は、私が3月に行ったのと同様の立場の人に何か助けになることを願っています。

1

私はSMTPサービスのローカルキューの長さカウンタを読み取ることPerformanceCounterコンポーネントを使用します。

0

.netウィジェットが特注品である場合、出力を何らかの(定義可能な)スループットに調整するだけでいいのですか?

代わりに、SMTPサーバーのいくつかのレジストリ設定を試すことができます。

http://blog.rednael.com/CommentView,guid,dc20366c-3629-490a-a8ee-7e8f496ef58b.aspx

はどうやらまた、あなたの有益な情報を与えるいくつかのWMIカウンタ(リモート再試行キューの長さ\リモートキューの長さとSMTPサーバー\ SMTPサーバー)があります。

http://www.tech-archive.net/Archive/Internet-Server/microsoft.public.inetserver.iis.smtp_nntp/2008-02/msg00011.html

関連する問題