2

メールの送信先のメールアドレスのリストがあります。メール機能はデータベースからのリストをループしますが、不正な形式の電子メール アドレスに遭遇すると停止し、ループから抜け出します。エラーをキャッチするために try/catch を使用しようとしましたが、ループを続行することを望んでいましたが、期待どおりに機能しませんでした。コードは以下です。ループの前に電子メールアドレスをふるいにかけ、悪いアドレスを除外できるというアイデアや正規表現を誰かが持っていれば、それは素晴らしいことです。

ありがとう。

    <!---Try to send the mail(s)--->
<cftry>
    <cfmail to="<#Auctioneer.email#>" from="#emailSite#" subject="#Email.subject#" server="#emailServer#" query="Auctioneer" type="html">
        <!---Some email content--->
    </cfmail>

    <cfcatch type="Application">
        <cflog text="#cfcatch.detail#" file="mail" type="Error" application="yes">
        <cfmail to="admin@website.co.uk" from="#emailSite#" subject="Invalid E-Mail Address" type="html">
            Email address not valid error.
            #Auctioneer.email#
            <cfdump var="#cfcatch.detail#">
        </cfmail>
    </cfcatch>
</cftry>
4

3 に答える 3

2

必要なのは、アドレスをループして検証し、有効なエントリに対してのみメールを送信することです。このようなもの

<cfloop query="getEmails">
    <cfif isValid("email", Auctioneer.email)
    ...send valid email...
    <cfelse>
    ...send invalid email, or better log in database...
    </cfif>
</cfloop>

PS を入れる必要はありませ<>to

于 2011-11-26T19:49:57.353 に答える
2

まず、クエリ内の電子メール アドレスを検証してみてください。

しかし、私にとっては、CFMAIL タグでクエリを管理するのが好きではありませんでした。それはいつもそれが価値があるよりも多くの問題を引き起こしているように見えました. 私は通常、次のようなことをします:

<cfoutput query="Auctioneer">
  <cftry>
    <cfmail to="#email#" from="#variables.emailSite#" subject="#variables.subject#" server="#application.emailServer#" type="html">
      <!---Some email content--->
    </cfmail>

    <cfcatch type="Application">
        <cflog text="#cfcatch.detail#" file="mail" type="Error" application="yes">
        <cfmail to="admin@website.co.uk" from="#variables.emailSite#" subject="Invalid E-Mail Address" type="html">
            Email address not valid error.
            #email#
            <cfdump var="#cfcatch.detail#">
        </cfmail>
    </cfcatch>
  </cftry>
</cfoutput>
于 2011-11-26T19:46:09.713 に答える
0

私は個人的にそれらをループし、エラーをキャッチしてループを続行します。

for(var i = 1; i < Auctioneer.recordCount; i++) {
    try {
        //send email
    } catch (Any e) {
        //log
        continue;
    }
}
于 2011-11-28T11:26:59.363 に答える