intra-martスクリプト開発 入力時したデータをメールで送る場合の注意事項

2022年04月29日 00時04分

概要

イントラマートでスクリプト開発を行った際、FORMとしてテキストエリアとリッチテキストボックスのデータをメール送信する際に困ったので次の人用にまとめ。

テキストエリア テンプレートイメージ 参照:スクリプト開発向けタグライブラリ imuiTextArea

リッチテキストボックス テンプレートイメージ 参照:スクリプト開発向けタグライブラリ imuiRichtextbox

のFORMを作った際にファンクションコンテナ側に渡す時、どうやって改行を行っているか。

入力欄 入力方法 改行表現
テキストエリア 直打ち \r\nで改行
テキストエリア コピーペースト貼り付け \r\nで改行
リッチテキスト 直打ち 各行に<p></p>を定義して改行を表現。及び改行時に\r\nで改行
リッチテキスト コピーペースト貼り付け 改行箇所に<BR />タグを挿入して表現。\r\nは無し

メール送信時、改行されない

テキストエリアHTML形式のメールで送信する場合、タグが存在しないため、改行されずに送信される場合がある。

そのためメール送信前に、改行コードを特定してreplaceで<br>タグで置き換える。

メール送信時の文字化け

リッチテキスト利用時に、メモ帳等からコピーペーストされた文字列が存在する場合、

\r\nの改行が存在しないので、HTMLメールをそのまま作成すると、

メールサーバーによっては1行1000バイトの文字制限に引っかかって文字化けする場合がある。

参考:メール本文が一行1000バイトを超えると文字化ける問題

そのため<BR \>タグが組み込んである場合は、

メール送信前にreplace等で<BR \>\r\nで仕込む。

(データとして<BR \>\r\nで保存するとリッチテキストで再表示する際に、2行分の改行が発生する。)