1

CDO.Message を使用してニュースレター アプリケーションを作成しています。しかし、多くの接続が必要であるというエラーが返されます。同時接続数が10に制限されているようです。

では、1 つの接続で複数のメッセージを送信したり、より速く切断したりする方法はありますか? cdo/configuration/smtpconnectiontimeout パラメーターがありますが、それは送信者が試行する時間に関するものだと思います。

(送信すると失敗しますが、数分後に再び成功します。これは、おそらく接続が切断されたことを意味します)。

(Web サーバーから HTML メッセージ本文を取得するため、CDO を使用しています)

編集

Public Sub ipSendMail(ByVal toEmail As String, ByVal fromEmail As String, ByVal subject As String, ByVal url As String)
    Dim iMsg As Object
    Set iMsg = CreateObject("CDO.Message")
    iMsg.From = fromEmail
    iMsg.To = toEmail
    iMsg.Subject = subject
    iMsg.CreateMHTMLBody(url)
    iMsg.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    iMsg.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "relay.wwwwwwwwww.net"
    iMsg.Configuration.Fields.Item_
        ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    iMsg.Configuration.Fields.Item _ 
        ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 0
    iMsg.Configuration.Fields.Update()
    iMsg.Send()
    Set iMsg = Nothing
End Sub
4

3 に答える 3

0

私は、CDO が時々風変わりな場合があることを知っています。

おそらくキューが最適です。その後、スマートホストを使用して送信メッセージをキューに入れる受信接続制限なしのローカル SMTP サーバーをセットアップすることを検討します。(これは実際にはかなり簡単に書くことができます。「S」は「シンプル」を意味し、実際にはそうです。)

他のすべてが失敗した場合... RFC 2821 および 2822 (または、SMTP およびメッセージ形式に関する最新かつ最高の RFC) を実装する独自のメーラー コンポーネントをいつでも作成できます。

編集: 送信するニュースレターがすべての受信者に対して同一である場合は、ダミーの受信者 (newsletter@yourdomain.com) に宛てて、受信者リスト (または受信者リストのサブセット) に BCC することができます。迷惑な商用メールとしてフラグが立てられないように注意してください。あなたが何をしているかをプロバイダーに知らせてください。彼らは苦情に対処しなければならず、請求書を支払うのはあなたです。苦情はほとんど不当である (そしてほとんどない) ことを彼らに知らせることは、彼らの自然なリスク回避を和らげるのに役立ちます.

于 2009-03-20T17:23:56.583 に答える
0

通常、送信するメッセージの数に関係なく、必要な接続は 1 つだけです。

おそらく、あなたはあるべきものを解放していません。

編集: 考えてみれば、送信先の SMTP サーバーは、おそらくテスト上の理由から、XP ボックスのホストではないでしょうか?

編集:わかりましたので、SMTPサーバーは問題ありません。

URL の結果を提供するサーバーはどのプラットフォームですか?

于 2009-03-12T09:32:11.793 に答える