お世話になります。
現在メールの送信プログラムを作成しております。
50件ほどのメールをループ処理で送信しようとしているのですが、
25件前後しか送信されずに困っております。
決してエラーが出るわけでもありません。
以下がそのコードです。(ループ処理内)
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("iso-2022-jp")
Dim msg As New System.Net.Mail.MailMessage()
Try
msg.From = New System.Net.Mail.MailAddress(xxx@xxx, xxx)
msg.To.Add(New System.Net.Mail.MailAddress(xxx@xxx))
msg.Subject = xxx
msg.Body = xxx
msg.SubjectEncoding = enc
msg.BodyEncoding = enc
Dim smtpClient As New System.Net.Mail.SmtpClient(xxxxx, 587)
smtpClient.ServicePoint.MaxIdleTime = 1
smtpClient.Credentials = New System.Net.NetworkCredential(xxx, xxx)
AddHandler smtpClient.SendCompleted, New System.Net.Mail.SendCompletedEventHandler(AddressOf smtpClient_SendCompleted)
smtpClient.SendAsync(msg, nothing)
Catch ex As Exception
End Try
環境はWinXP,VB2005です。
どなたかアドバイスよろしくお願いします。
SendAsync(非同期)なのですが・・・
SendCompletedで完了イベントをチャント受信してい
ても、即、次の送信を開始したら、サーバー側であた
かも正常に動作しているかのような動作をしても、
捨てられてしまっている場合もあります。
1通づつ送信完了をちゃんと待ち合わせ、また次メー
ルの送信まで少々時間をおくか、何等かのステータス
確認を行い、送信可能かどうか追加修正が必要と思い
ます。
以上。参考まで
オショウ様ありがとうございます。
解決とまではいきませんが、方向性は見えましたので
とりあえず解決とさせていただきます。
参考になりました。
ツイート | ![]() |