cfmail使用時の注意事項について

ColdFusionでメールを送信するcfmailタグは、内部でJavaMailライブラリを使用しています。ColdFusionのバージョンアップやUpdateの適用によりJavaMailのバージョンも上がり、それにより、従来と動作が異なる場合があります。ここではcfmailでメールを送信する際の注意事項について紹介致します。

  • cfmail送信時の添付ファイル名が受信先で正しく表示されない
    • ColdFusion 2021, 2018, 2016 Update 2 以降では、添付ファイルのエンコード方式にRFC 2231に沿ったエンコードが行われます。特に、添付ファイル名に日本語などが使われていると、Bエンコードされた際に文字列が長くなる(60文字を超える程度になる)と、name*0, name*1 のようにファイル名が分割されて送信される仕組みになります。古いメーラー(Outlookなど)では、この分割されたエンコード方式に対応していないため、添付ファイルのファイル名が文字化けを起こす原因となります
  • cfmailで xxx..xxxx@ や xxxx.@ などのメールアドレスにメールが送信できない
    • ColdFusion 2021, 2018 Update, 2016 Update 17以降では、メールの送信先(toやcc, bcc)RFC822に違反しているメールアドレス(ピリオドが2つ連続したり、@の直前にピリオドを使用したアドレス)に対して、メールが送信できなくなりました
    • To にRFC822 に違反しているアドレスが含まれているとエラーが発生します。CC やBCC にRFC822 に違反しているアドレスがあると、内部で除去されます(エラーは発生しませんが、送信されません)
    • (参考)https://qiita.com/nshibazaki/items/e7836384b119c9e38819
      (一般サイト:JavaMail 1.6.2 以上で特殊なメールアドレス(RFC822 違反アドレス)に
      送ろうとするとAddressException が発生する件)
       
  • cfmailのMessage-IDの@以下に指定されるサーバー名を変更する
    • メールを送信する環境によっては、cfmailでメールを送信した際に付与される Message-ID の@以下にSMTPサーバーのサーバー名が付きます。このサーバー名を変更するには、JavaMailのmail.hostプロパティを指定します。
    • JavaMail自体の設定となりますので、cfmailタグや Administartorの「メールサーバーの設定」ではなく、ColdFusion Administratorの「サーバーの設定 > JavaとJVM」の『JVM 引数』に値を定義する事を示す「-D」を付けて指定します。
      1. ColdFusion Administratorにログインし、「サーバーの設定 > JavaとJVM」ページを開きます
      2. 『JVM 引数』に「-Dmail.host=xxx.xxx.xxx を追加します
        (例: -Dmail.host=mltest.samuraiz.co.jp)」
        • ※画面上は、改行されているように見えますが、実際はスペース区切りで改行などは入れないでください
      3. [変更の送信]を押します
      4. 再起動のメッセージが表示されたら、ColdFusion Application Serverサービスを再起動してください

 


記事公開日:2021年09月06日
最終更新日:2021年09月06日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.