テレワーク等の在宅勤務で、毎日勤怠メールを送らなくてはならないとき、定形文があると便利ですよね。

ということで、日付や時間をその日時に合わせて、送信先、件名、本文などを記憶してメーラーを起動して送信できるツールを作ってみました。 → ggApp FormSendMail

JavaScriptですべてフロントエンドで書いています。データの保存はCookieを利用していますので、その部分のコードを紹介します。


Cookieにデータを保存する(Set Cookie)

var ggSetCookieSec = function(kk, vv, ma=2592000){
  vv = ggEnCript(vv);
  var dd = kk + "=" + encodeURIComponent(vv) + "; ";
  dd += "max-age=" + ma + "; " + "secure";
  document.cookie = dd;
};

kk(key)vv(value)ma(Max-Age) を受け取り、Cookieに保存します。 Max-AgeCookieの保存期間で、デフォルト30日=2592000秒にしています。

私は let より var を使うことが多いのですが、 let に置き換えたほうが良いかもしれませんね。

secure は、HTTPSのみで機能するようにするためです。


Cookieからデータを取得する(Get Cookie)

var ggGetCookieHash = function(){
  var hh = {};
  if(document.cookie != ''){
    var ddd = document.cookie.split('; ');
    ddd.forEach( dd => {
      var kv = dd.split('=');
      hh[kv[0]] = ggDeCript( decodeURIComponent(kv[1]) );
    });
  }
  return hh;
};

保存してあるすべてのCookieを読み込んで、ハッシュにして返します。


ggEnCriptggDeCript は、暗号化復号化です。なくても良いと思います。ggApp FormSendMailでは、メールアドレスなども保存することを考慮し暗号化しました。

暗号化は簡易暗号ですが、別途記事にするつもりです。


参考

2022/10/09