2016-05-02 26 views
0
  • Coldfusion 11
  • Fenster 2012

Code:Coldfusion: cfmail Tag mit Query-Schleife, wie man verwendet isValid()

<cfmail query="getEmail" 
       to="#getEmail.email#" 
       from="#getEmail.displayName# <#getEmail.emailfrom#>" 
       subject="#getEmail.emailsubject#" 
       type="html" 
       server="10.1.0.2" 
       timeout="360" 
       username="#myuser#" 
       password="#mypassword#" spoolenable='no' > 

    My email content 

    </cfemail> 

Im laufenden cfmail Tag mit Abfrage. Wie kann ich isvalid ("email", "") in meiner Situation verwenden.

+3

So weit ich weiß, müssen Sie entweder zuerst ein gefiltertes Abfrageergebnis erstellen oder cfmail in eine umbrechen und Ihr Abfrageattribut loswerden. Denken Sie daran, isValid() für E-Mails hat Probleme. Siehe https://www.raymondcamden.com/2014/07/21/ColdFusion-isValid-Email-and-new-TLDs/ –

+0

das ist das Hauptproblem, das ich nicht so viel im Code ändern kann, wegen der Produktion. Kann ich irgendetwas tun? Abfrage kommt von MSSQL SP – IBM

+2

Können Sie den Code ändern, der die E-Mail in die Datenbank an erster Stelle einfügt? Wenn Sie isValid() vor dem Speichern der Daten getestet haben, müssen Sie es beim Aufruf von "cfmail" nicht testen. –

Antwort

1

Vielleicht kann u regex auf dem SQL-Abfrage verwenden, versuchen Sie, diese Bedingung setzen

SELECT .... WHERE email NOT REGEXP '^[^@][email protected][^@]+\.[^@]{2,}$' 

ich diese Rückkehr nur Datensätze mit gültigen E-Mails glauben.

lassen Sie mich wissen, ob dies

+0

Ich habe MSQL 2008 Ich denke nicht, dass es Regex direkt unterstützt ... – IBM

2

Versuchen Sie Ihr Code in einem cfif Tag arbeitet. Hier

<cfloop query="getEmail"> 
    <cfif isValid("email", getEmail.email)> 
     //Code to send mail 
    <cfelse> 
     Invalid Email <cfoutput>#email#</cfoutput>. 
    </cfif> 
</cfloop> 

, eine E-Mail Sie aus getEmail Anfrage gegeben werden. Wenn es gültig ist, wird nur eine E-Mail gesendet, sonst wird die E-Mail gesendet. Letztendlich finden Sie die Liste der ungültigen E-Mails (falls vorhanden).