- PR -

System.Net.Mailは10件まで

1
投稿者投稿内容
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-04-26 17:35
 こんにちは。
皆さんのおかげで、VB2005からSystem.Net.Mailを使って
メールを送るテスト段階まできました。

 ところがあるフォルダ内の全てのファイルを1件ずつ送信するのですが
10を超えると初回例外が発生しましたのエラーになってしまいます。

上限値とか決まっているのでしょうか?
また、対応方法を教えて頂けないでしょうか?

宜しくお願いします。

LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-04-26 18:14
すいません、SendAsyncにしてみましたら
送信できました。

Dim usertoken As Object
Sc.SendAsync(msg, usertoken)

SendAsyncとSendの違い(使い分け方)、Sendでは10件までしか送信できない理由
を合わせて教えて頂けませんか?

すいません、宜しくお願いします。
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2007-04-27 10:16
SmtpClientクラスに違いは記載されてます。

電子メール メッセージを送信し、SMTP サーバーへの送信の待機中に処理をブロックするには、いずれかの同期 Send メソッドを使用します。
プログラムのメイン スレッドが、電子メールの送信中も実行を継続できるようにするには、いずれかの非同期 SendAsync メソッドを使用します。
SendAsync 操作が完了すると、SendCompleted イベントが発生します。
このイベントを受信するには、SendCompletedEventHandler デリゲートを SendCompleted に追加する必要があります。
SendCompletedEventHandler デリゲートは、SendCompleted イベントの通知を処理するコールバック メソッドを参照する必要があります。
電子メールの非同期的な伝送をキャンセルするには、SendAsyncCancel メソッドを使用します。

10件云々は
SmtpClient.Send メソッド (MailMessage)
このメソッドは、電子メールの送信中はブロックします。Timeout プロパティを使用してタイムアウト値を指定すると、指定した時間の経過後にメソッドから制御を戻すことができます。
非同期的に送信中のメッセージが存在する場合、このメソッドは呼び出すことができません。
ってのが関係するのでわ?
リファレンスは読んでます?
ペンちゃん
ベテラン
会議室デビュー日: 2006/08/04
投稿数: 61
投稿日時: 2007-04-27 10:22
引用:

LANVINさんの書き込み (2007-04-26 18:14) より:
SendAsyncとSendの違い(使い分け方)、Sendでは10件までしか送信できない理由
を合わせて教えて頂けませんか?



私は詳しく分かりませんが、いくつかキーワードが出ているようですので検索してみました。
「system.net.mail SendAsync Send」で検索して見つけたページ
http://www.microsoft.com/japan/msdn/netframework/skillup/core/article12.aspx

質問する前に検索する癖をつけたほうがよいかと思います。

#未記入さんの方が詳しいのであまり参考にならないかもですが
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-04-27 16:32
resありがとうございます。

マイクロソフトや他サイトのメール関連は検索し、見てみましたが
複数多数のメール送信の場合は、どちらを使うと
明確に明記してあったものがなく
未記入さんんの
「このメソッドは、電子メールの送信中はブロックします。Timeout プロパティを使用してタイムアウト値を指定すると、指定した時間の経過後にメソッドから制御を戻すことができます。
非同期的に送信中のメッセージが存在する場合、このメソッドは呼び出すことができません。 ってのが関係するのでわ? 」
というのがよく解らないままでした。

詳しい説明ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)