cfmail

説明

SMTP サーバーを使用して、オプションでクエリ出力を含むメールメッセージを送信します。

カテゴリ

シンタックス

<cfmail 
from = &quot;e-mail address&quot; 
to = &quot;comma-delimited list&quot; 
bcc = &quot;comma-delimited list&quot; 
cc = &quot;comma-delimited list&quot; 
charset = &quot;character encoding&quot; 
debug = &quot;yes|no&quot; 
failto = &quot;e-mail address&quot; 
group = &quot;query column&quot; 
groupcasesensitive = &quot;yes|no&quot; 
idnaversion=&quot;IDNA encoding&quot;
mailerid = &quot;header id&quot; 
maxrows = &quot;integer&quot; 
mimeattach = &quot;path&quot; 
password = &quot;string&quot; 
port = &quot;integer&quot; 
priority = &quot;integer or string priority level&quot; 
query = &quot;query name&quot; 
remove = &quot;yes|no&quot; 
replyto = &quot;e-mail address&quot; 
server = &quot;SMTP server address&quot; 
spoolenable = &quot;yes|no&quot; 
startrow = &quot;query row number&quot; 
subject = &quot;string&quot; 
timeout = &quot;number of seconds&quot; 
type = &quot;mime type&quot; 
username = &quot;SMTP user ID&quot; 
useSSL = &quot;yes|no&quot; 
useTLS = &quot;yes|no&quot; 
wraptext = &quot;column number&quot; 
sign = &quot;true|false&quot; 
keystore = &quot;location of keystore&quot; 
keystorepassword = &quot;password of keystore&quot; 
keyalias = &quot;alias of key&quot; 
keypassword = &quot;password for private key&quot;
encrypt &quot;true|false&quot;
recipientcert = <path to the public key cert>
encryptionalgorithm = &quot;DES_EDE3_CBC, RC2_CBC, AES128_CBC, AES192_CBC, AES256_CBC&quot;> 

(オプション)メールメッセージ本文や cfmailparam のタグ 

</cfmail>
注意:

このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cfmailparamcfmailpartcfpopcfftpcfhttpcfldapWrapメールサーバーでの ColdFusion の使用(『Developing ColdFusion アプリケーションの開発』のメールの送受信にあります)

履歴

ColdFusion(2018 リリース):属性 idnaversion が追加されました。

ColdFusion 11:属性、暗号化、 recipientcert および encryptionalgorithm が追加されました。

ColdFusion 8.0.1:Remove 属性が追加されました。

ColdFusion 8:priority、useSSL、および useTLS 属性が追加されました。

ColdFusion MX 7:

  • 一方、 cfmail  タグ本文に MIME エンコードされたメッセージ全体を埋め込んでマルチパートメールを送信することができなくなりました。代わりに、 cfmailpart  タグを使用します。
  • 一方、 cfmail  タグでは等幅フォントがプロポーショナルフォントと同様にレンダリングされます。この動作変更は ColdFusion 5 からのものです。ColdFusion MX 7 では UTF-8 が使用され、これがメールヘッダに埋め込まれて送信されます(Content-Type: text/plain; charset=UTF-8)。ColdFusion 5 では ISO-8859-1(Latin 1)が使用されます。この問題を回避するには、charset= " ISO-8859-1" 属性を追加してデフォルトの ColdFusion 5 エンコーディングを復元します。また、ColdFusion Administrator の「メール」ページでエンコードを変更することもできます。
    ColdFusion MX 6.1:
  • 以下の属性、文字セット、 failto 、 replyto 、ユーザー名、パスワード および   wraptext が追加されました。
  • server 属性で複数のメールサーバーを指定できるようになりました。
  • ColdFusion Administrator の「メール設定」ページにいくつかの設定オプションが追加されました。
    ColdFusion MX:SpoolEnable 属性が追加されました。ColdFusion 9:メールに電子署名を追加できるようになりました。新規に追加された関連属性を以下に示します:sign、 keystore 、 keystorepassword 、 keyalias 、 keypassword  および remove。

属性

属性

必須/オプション

デフォルト

説明

bcc

オプション

 

メッセージのコピー先のアドレスです。メッセージのヘッダにはリストされません。複数のアドレスを指定するには、各アドレスの間をコンマで区切ります。

cc

オプション

 

メッセージのコピー先のアドレスです。複数のアドレスを指定するには、各アドレスの間をコンマで区切ります。

charset

オプション

ColdFusion Administrator の「メール」ページで選択した文字エンコード(utf-8)

ヘッダを含むメールメッセージの文字エンコードです。一般的に使用される値を次に示します。

  • utf-8
  • iso-8859-1
  • windows-1252
  • us-ascii
  • shift_jis
  • iso-2022-jp
  • euc-jp
  • euc-kr
  • big5
  • hz-gb-2312
  • euc-cn
  • utf-16
    文字エンコードについて詳しくは、www.w3.org/International/O-charset.html を参照してください。

debug

オプション

no

  • yes: デバッグ出力を標準出力に送信します。デフォルトでは、コンソールウィンドウを使用できない場合、ColdFusion は出力をサーバー設定内の <ColdFusion のルートディレクトリ>¥runtime¥logs¥coldfusion-out.log に送信します。
  • no: デバッグ出力を生成しません。

failto

オプション

 

メールシステムから配達失敗の通知が送信されるアドレスです。メールエンベロープの逆順パスの値を設定します。

から

必須

 

電子メールメッセージの送信者の名前です。

  • スタティックな文字列(例:"support@mex.com")。
  • 変数(例:"#GetUser.EMailAddress#")。
    この属性は、有効なインターネットアドレスでなくてもかまいません。空白を含まない任意のテキスト文字列を使用できます。

は、

必須

 

メッセージ受信者の電子メールアドレスです。

  • スタティックなアドレス(例: "support@.com")。
  • アドレスが含まれている変数(例:"#Form.Email#")。
  • アドレスが含まれているクエリ列の名前(例: "#EMail#")。返される行ごとに電子メールメッセージが送信されます。
    複数のアドレスを指定するには、各アドレスの間をコンマで区切ります。

subject

必須

 

メッセージの表題です。ダイナミックに作成することができます。例えば、顧客に最新情報を通知するメッセージを送信するには、"注文番号 #Order_ID# のステータス" などを指定します。

group

オプション

CurrentRow

レコードのセットをグループ化して、1 つのメッセージとして送信する場合に使用するクエリ列です。例えば、顧客に 1 セットの請求書を送信する場合、"Customer_ID" でグループ化します。大文字と小文字は区別されます。指定したフィールドでデータをソートする場合、隣り合う重複データは削除されます。

groupcasesensitive

オプション

No

ブール値。group 属性を使用するときに、大文字と小文字を区別するかどうかを指定します。大文字と小文字の区別があるレコードをグループ化する場合は、この属性を Yes に設定します。

idnaversion オプション 2008 適用する IDNA エンコードを選択します。IDNAversion 属性が指定されていない場合は、JVM フラグで指定されたエンコードが適用されます。Idnaversion が指定されている場合は、対応するエンコーディングが適用されます。

keyalias

オプション

 

証明書と秘密キーをキーストアに保存するために使用するキーのエイリアスです。指定しない場合は、キーストアの最初のエントリがエイリアスとして使用されます。

keypassword

オプション

 

秘密キー用のパスワードです。指定しない場合は、keystorepassword が使用されます。

keystore

オプション

 

キーストアファイルの場所です(C:¥OpenSSL¥bin¥keystore.jks など)。

keystorepassword

オプション

 

キーストア用のパスワードです。ColdFusion 設定ファイルに保存されます。

mailerid

オプション

ColdFusion アプリケーションサーバー

X-Mailer SMTP ヘッダに渡されるメーラー ID です。この ID によって、メーラーのアプリケーションが識別されます。

maxrows

オプション

 

クエリをループするときに送信するメッセージの最大数です。

mimeattach

オプション

 

メッセージに添付するディスク上またはメモリ内のファイルのパスです。添付ファイルは MIME 形式でエンコードされます。ファイルの MIME タイプは ColdFusion によって判断されます。MIME タイプを指定して添付ファイルを送信するには、cfmailparam タグを使用します。

password

オプション

 

認証を要求する SMTP サーバーに送信するパスワードです。username 属性が必要です。

port

オプション

 

SMTP サーバーがリクエストをリスンする TCP/IP ポートです(通常は 25)。ここで設定する値は、Administrator で設定する値よりも優先されます。

priority

オプション

3

メッセージの優先度レベルです。次のいずれかの値を指定します。

  • 1 ~ 5 の範囲の整数。1 が最も高い優先度を表します。
  • 次のいずれかの文字列。これらの文字列は数値に対応します。highest または urgent、high、normal、low、lowest または non-urgent。

query

オプション

 

メッセージのデータを取り出す cfquery の名前です。複数のメッセージを送信する場合や、メッセージ内でクエリ結果を送信する場合は、この属性を使用します。

remove

オプション

no

yes の場合、メールが正常に送信された後に添付ファイル(ある場合)が削除されます。

replyto

オプション

 

受信者が返信するときに宛先として使用するアドレスです。

server

オプション

 

メッセージの送信に使用する SMTP サーバーアドレス、または(エンタープライズ版のみ)サーバーアドレスのコンマ区切りリストです。ここか ColdFusion Administrator で、少なくとも 1 つのサーバーを指定する必要があります。ここで設定する値は、Administrator で設定する値よりも優先されます。ポートの指定を含む値は、port 属性で設定する値よりも優先されます。詳細については、「使用方法」を参照してください。

sign

 

 

メールに電子署名を追加します。true に設定されている場合、送信するすべてのメッセージに電子署名が追加されます。

spoolenable

オプション

 

メールをスプールするか、常にメールを直ちに送信するかを指定します。ColdFusion Administrator の「配達されるメールメッセージをスプール」で設定する値よりも優先されます。

  • yes: 送信オペレーションが終了するまで、メッセージのコピーを保存します。ページでこのオプションを使用すると、No オプションを使用するページよりも処理が遅くなることがあります。
  • no: 送信オペレーションが終了するまでコピーを保管せずに、メッセージを送信キューに挿入します。このオプションを No に設定したときに配達エラーが発生すると、アプリケーション例外が発生し、mail.log ファイルにエラーのログが記録されます。

startrow

オプション

1

処理を開始するクエリ内の行です。

timeout

オプション

 

SMTP サーバーへの接続がタイムアウトになるまで待機する秒数です。ここで設定する値は、Administrator で設定する値よりも優先されます。

type

オプション

text/plain

メッセージの MIME タイプです。有効な MIME メディアタイプまたは次のいずれかの値を指定できます。

  • text: text/plain タイプを指定します。
  • plain: text/plain タイプを指定します。
  • html:text/html タイプを指定します。
    登録されているすべての MIME メディアタイプのリストについては、www.iana.org/assignments/media-types/ を参照してください。

username

オプション

 

認証を要求する SMTP サーバーに送信するユーザー名です。password 属性が必要です。

useSSL

オプション

 

Secure Sockets Layer を使用するかどうかを指定します。

useTLS

オプション

 

Transport Level Security を使用するかどうかを指定します。

wraptext

オプション

テキストをラップしない

メールテキストの最大行を文字数で指定します。指定した文字数よりも行が長い場合は、指定した位置の直前の空白文字(タブやスペースなど)が改行に置き換わります。行に空白文字がない場合は、指定した位置に改行が挿入されます。この属性の一般的な値は 72 です。

encrypt オプション false

電子メールを暗号化する必要がある場合に指定します。

recipientcert オプション false

受信者の公開キー証明書のパスです。

encryptionalgorithm オプション  

使用する暗号化アルゴリズムです。

使用できるアルゴリズムは次のとおりです。

  • DES_EDE3_CBC
  • RC2_CBC
  • AES128_CBC
  • AES192_CBC
  • AES256_CBC

暗号化サポートは、S/MIME によって提供されます。

使用方法

指定したアドレスにメールメッセージを送信します。メールメッセージには、添付ファイルを含めることができます。タグ本文に CFML コードを入れて、メール出力を生成できます。cfmailparam タグと cfmailpart タグは、cfmail タグ本文内でのみ使用できます。メールメッセージは、シングルまたはマルチパートにできます。マルチパートのメールメッセージを送信する場合は、メッセージの内容をすべて cfmailpart タグ内に入れる必要があります。cfmailpart タグ内にないマルチパートのメッセージテキストは無視されます。

注意:

cfmail タグは、メールをディスクにスプールするときに添付ファイルのコピーを作成しません。スプール機能を有効にした添付ファイルのメッセージを送信するために cfmail タグを使用し、その添付ファイルを削除するために cffile タグを使用する場合、ファイルが削除された後でメール処理が実行される可能性があるため、メールが送信されないことがあります。この場合は、メールログに FileNotFound 例外が記録され、電子メールは送信されません。属性で SpoolEnable="No" を設定するか、ColdFusion Administrator でスプール機能を無効にすると、この問題を防ぐことができます。スプール機能を無効にすると、電子メールは直ちに配達されるようになります。

type="text" を設定すると、送信するメッセージ内の空白文字が圧縮される場合があります。この問題を解決するには、ColdFusion Administrator でサーバーの設定/設定に移動し、「空白抑制の有効化」オプションを選択解除します。

メールアドレスの指定

メールアドレスは、次のどの形式でも指定できます。

形式

user (server)company.com

<user@server>

<rsmith@company.com>

表示名 <user@server>

Rob Smith <rsmith@company.com>

"表示名" <user@server>

"Rob Smith" <rsmith@company.com>

user@server(表示名)

rsmith@company.com(Rob Smith)

メールサーバーの指定

server 属性では、複数のメールサーバーを指定できます。

注意:

ColdFusion スタンダード版で複数のメールサーバーを指定した場合、cfmail タグではその中の最初のサーバーのみが使用されます。メールログファイルに警告メッセージのログが記録され、残りのサーバーは無視されます。

サーバーごとに、オプションでユーザー名、パスワード、およびポートを指定できます。ここで設定する値は、対応する属性で設定した値よりも優先されます。server 属性は、次の形式で指定します。

[user:password@]server[:port],[user:password@]server[:port],....

例えば、次の行では、デフォルトのポートを使用し、ユーザーとパスワードを使用しない mail.myco.com というサーバーを指定しています。次に、ユーザー、パスワード、および特定のポートを使用する 2 番目のサーバーを指定しています。

server=mail.myco.com,mail_admin:adm2qzf@mail2.myco.com:24

ColdFusion エンタープライズ版で複数のメールサーバーを指定すると、いずれかのサーバーに接続されるまで、指定した順序で利用可能なサーバーへの接続が試行されます。直前の 60 秒間利用できなかったサーバーには接続は試行されません。

電子署名

メールに電子署名を追加するには、sign、keystore、keystorepassword、keyalias、および keypassword の各属性を次の例に示すように指定します。

<cfmail from=&quot;Sender@Company.com&quot; server=&quot;sendmail.myCo.com&quot; sign=&quot;true&quot; keystore=&quot;C:\OpenSSL\bin\hello.jks&quot; keystorepassword=&quot;digital&quot; to=&quot;Recepient@Company.com&quot; keyalias=&quot;crypto&quot; keypassword=&quot;signature&quot; subject=&quot;電子署名を使用したメール&quot;>

送信するすべてのメッセージに電子署名を追加するには、タグに属性を追加するのではなく、ColdFusion Administrator の「サーバーの設定/設定」ページで設定を指定します。

タグで属性を指定しない場合は、Administrator 設定が適用されます。また、タグで sign = "true" を設定し、keystore、keystorepassword、keyalias および keypassword の各属性を指定しない場合は、ColdFusion Administrator を使用して指定したこれらの属性の値が適用されます。

<h3>cfmail の例</h3> 

<! --- この例を使用するには前後のコメントを削除してください。

<cfif IsDefined(&quot;form.mailto&quot;)> <cfif form.mailto is not &quot;&quot; AND form.mailfrom is not &quot;&quot; AND form.Subject is not &quot;&quot;> <cfmail to = &quot;#form.mailto#&quot; from = &quot;#form.mailFrom#&quot; subject = &quot;#form.subject#&quot;> This message was sent by an automatic mailer built with cfmail: = = = = = = = = = = = = = = = = = = = = = = = = = = = #form.body# </cfmail> <h3>Thank you</h3> <p>Thank you, <cfoutput>#mailfrom#: your message, #subject#, has been sent to #mailto#</cfoutput>.</p> </cfif> </cfif> <p> <form action = &quot;cfmail.cfm&quot; method=&quot;POST&quot;> <pre> TO: <input type = &quot;Text&quot; name = &quot;MailTo&quot;> FROM: <input type = &quot;Text&quot; name = &quot;MailFrom&quot;> SUBJECT: <input type = &quot;Text&quot; name = &quot;Subject&quot;> <hr> MESSAGE BODY: <textarea name =&quot;body&quot; cols=&quot;40&quot; rows=&quot;5&quot; wrap=&quot;virtual&quot;></textarea> </pre> 
<! ---必須フィールドを確立します。---> 
<input type = &quot;hidden&quot; name = &quot;MailTo_required&quot; value = &quot;You must enter a recipient&quot;> <input type = &quot;hidden&quot; name = &quot;MailFrom_required&quot; value = &quot;You must enter a sender&quot;> <input type = &quot;hidden&quot; name = &quot;Subject_required&quot; value = &quot;You must enter a subject&quot;> <input type = &quot;hidden&quot; name = &quot;Body_required&quot; value = &quot;You must enter some text&quot;> <p><input type = &quot;Submit&quot; name = &quot;&quot;></p> </p> </form>

ColdFusion 11 では、以下の手順に従ってメールを暗号化できます。

  1. メールの送信先ユーザーの証明書を取得します(.p7c 形式)。
  2. recipientcert 属性に対して生成された証明書のパスを指定します。例:

    <cfmail ... encrypt="true" ENCRYPTIONALGORITHM = "DES_EDE3_CBC" recipientcert="#path#cert.p7c" >

  3. ColdFusion Administrator からメールサーバーを設定します。
  4. Actionscript を使用して、 ColdFusion が設定されている JRE のバージョンに応じて、Java 暗号化拡張機能(JCE)に無制限の強度のポリシーファイルをダウンロードします(キーサイズが128よりも大きい暗号化アルゴリズムを使用している場合)。
  5. メールを送信します。次の例を参照してください。
<cfset path = GetDirectoryFromPath(getCurrentTemplatePath())>

<cfset algorithms = &quot;DES_EDE3_CBC,RC2_CBC,AES128_CBC,AES192_CBC,AES256_CBC&quot;>

<cfloop index=&quot;algo&quot; list=&quot;#algorithms#&quot;>

<cfmail to=&quot;joe@work.com&quot; from=&quot;bob@work.com&quot; 
subject=&quot;#algo# アルゴリズムを使用したメッセージの送信&quot; 
sign =&quot;false&quot; 
encrypt=&quot;true&quot; 
ENCRYPTIONALGORITHM = &quot;#algo#&quot; 
recipientcert=&quot;#path#cert.p7c&quot; > 
このメッセージは、#algo# アルゴリズムを使用して暗号化されています。
</cfmail>

</cfloop>

attribute idnaversion の使用例

<cfprocessingdirective pageencoding=&quot;utf-8&quot;>
<cfmail to=&quot;sample@example.com&quot; 
    from=&quot;test@example.com&quot; 
    username=&quot;username&quot; 
    password=&quot;password&quot; 
    server=&quot;localhost&quot; 
    subject=&quot;hello&quot; 
    debug=&quot;true&quot; 
    idnaversion=&quot;2003&quot;>
    Hello World !
</cfmail>

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト