レコードの内容を取り込んだメールを立ち上げる

Kintoneのレコードからフィールドの内容を取り込んだメールを立ち上げるJava Scriptを作成しています(以下参照ください)。
現在メール本文の文字数に制限がありそうで困っています。
メール本文が全角文字で176文字程度を超えるとメールが立ち上がらなくなります。

原因と対策をご存じの方がおられましたらご助言をお願いします。自分で調べても、mailtoコマンドにおける本文の文字数制限については情報が得られませんでした。どうぞよろしくお願い申し上げます。

スクリプト
kintone.events.on(‘app.record.detail.show’, function(event) {
var record = event.record;
var userField = record[‘対応者’];
var userField2 = record[‘関係者’];

var email = userField.value.length > 0 ? userField.value.map(user => user.code).join(';') : '';
var ccemail = userField2.value.length > 0 ? userField2.value.map(user => user.code).join(';') : '';

var emailBody = `本文が176文字程度を超えるとメールが立ち上がりません。`;
var requestType = record['依頼の種類'].value; // 依頼の種類のDisplay Nameを取得
var subject = `${requestType}_${record.相手方法人名.value}_${record.契約書名.value}`; // 件名の最初に依頼の種類を追加
var fieldElement = kintone.app.record.getFieldElement('mail');
if (fieldElement && !document.getElementById('open-email-button')) {
    var button = document.createElement('button');
    button.id = 'open-email-button';
    button.innerHTML = '依頼メールを送信する'; // ボタンの名称を変更
    Object.assign(button.style, {
        margin: '10px',
        padding: '10px',
        backgroundColor: '#4CAF50',
        color: 'white',
        border: 'none',
        borderRadius: '5px'
    });
    button.onclick = function() {
        if (email) {
            window.location.href = `mailto:${email}?cc=${ccemail}&subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(emailBody)}`;
        } else {
            alert('メールアドレスが設定されていません。');
        }
    };
    fieldElement.appendChild(button);
}
return event;

});

Kintoneのレコード内容をJavaScriptでメール本文に取り込む際、mailtoリンクを利用されているとのことですが、メール本文が全角176文字程度で立ち上がらなくなる現象は、mailtoリンクの文字数制限が原因と考えられます。

mailtoリンクには明確な仕様上の上限はありませんが、実際にはご利用のブラウザやメールクライアントごとにURL長に制限があり、一般的には約2,000文字程度が上限です。特に日本語などの全角文字はURLエンコード時に3倍以上の長さになるため、実際に入力できる文字数は大幅に少なくなります。そのため、本文が長い場合はすぐに制限に達してしまいます。

【対策案】

  • 本文の文字数やエンコード後の長さをJavaScriptで制限する
  • 本文が長い場合はKintoneレコードのURLのみを記載し、詳細はKintone上で確認してもらう
  • もし長文メールの送信が必要な場合は、TISさんの「Boost! Mail」や条件分岐処理プラグインなど、Kintoneのプラグインを利用することで、解決できるかもしれません。
    無料で利用できますので試してみてはいかがでしょうか?

もしJavaScriptでmailtoを利用する理由が特になければ、上記のようなプラグインの導入もご検討いただくと良いかと思います。

ご参考になれば幸いです。

「いいね!」 1

seaflour様

早々にご助言いただきありがとうございました。
Mailtoリンクの文字数制限は2000文字程度との情報は得ていたのですが、日本語だとURLエンコード時に3倍以上の長さになることは知りませんでした。
ご助言いただいたように、まずはKintoneレコードのURLを参照してもらうようにしたいと思います。

今回は的確なご助言をありがとうございました。

「いいね!」 1

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。