4

メール サーバーがサーバーへの接続を 5 分ごとに 100 しか受け付けないという問題に遭遇しました。私の現在のコードはデータベースをループして、リストの各人に対して cfmail を呼び出します。問題は、cfmail を使用するたびに新しい接続を開くことだと思いますか?

<CFLOOP QUERY="Customer" >

    <!---send mail to Admin ----->
     <cfmail to = "#cstEmail#"
      from = "#FORM.fromAddressEmail#"
      subject = "#FORM.subjectEmail#"
      server = "#var.mailserver#"
      port= "#var.mailport#"
      username="#var.mailuser#"
      password="#var.mailpass#"
      failto="#var.failEmail#
      type="html"         
       >

私が遭遇したのは、一度に 100 件のメールしか送信されず、残りは cf の未配信フォルダーに送信されていたことです。私はそれらをスプールに送り、再び100が通過します..

今、古いバージョンの cf を読んだことがありますが、cf 管理者には「接続を維持する」ためのチェックボックスがあります。cf9 を実行していて、このオプションが表示されません。

cfmail の query 属性を使用して、すべての電子メールを送信するために cfmail がメール サーバーに 1 回だけ接続するように強制しますか?

<cfmail query="Customer"
from = "#FORM.fromAddressEmail#"
to = "#cstEmail#"
subject = "#FORM.subjectEmail#">

数百の電子メールを送信せずにこれをテストする方法さえわかりません。これが問題の実行可能な解決策である場合、何か考えはありますか?

ご協力いただきありがとうございます!ビスコッティ

4

2 に答える 2

1

スケジュールされたタスクを使用して、ファイルを5分ごとにUndelivrディレクトリからSpoolディレクトリに戻すことで妥協しました。このソリューションにはわくわくしませんが、うまくいきます。

Russ の Respooler 拡張機能に感謝します。http://cfrespooler.riaforge.org/

于 2012-12-08T07:53:52.260 に答える
0

上記のコードを使用して CFMAIL 内で QUERY を呼び出すことで、クライアント側のプロセスを高速化することに成功しました。メール サーバーは 100 回目の接続後もメールを拒否しました。最初の例のように単に CFMAIL をループするだけで、この方法にはサーバー側の利点はないと判断しました。唯一の答えは、「接続の維持」機能が有効になっている cf 環境のエンタープライズ エディション内でコードを実行することです。

于 2012-12-08T07:02:58.940 に答える