LoginSignup
4
1

More than 5 years have passed since last update.

kintoneアプリのレコード追加時に項目参照してメールを送信するやつ

Last updated at Posted at 2017-05-10

kintoneアプリのレコード追加時に入力内容をメールしたい

ユーザーに対してやるやつはあるんだけど、項目にたとえば「メールアドレス」をつくって、そこに対して送信ってのは無い、からどうにかする

準備

  1. SendGridにお願いしてアカウント作る
  2. API Key発行してコピーしてメモっとく
  3. SendGrid APIを使ってメールを送信するプラグインを作ってみようsendgrid_plugin.zip をいれる
  4. フロントエンドとなるアプリで、↑のプラグインを利用する設定にする
  5. 設定でAPI Keyを設定しとく

前提

↓リンクで欄をつくる
スクリーンショット 2017-05-10 17.16.47.png

↓設定はこんなやつにしとく ※重要:フィールドコードを使うので適切に設定する
スクリーンショット 2017-05-10 17.17.21.png

↓こんな欄にする
スクリーンショット 2017-05-10 17.16.04.png

steps

1. ↓これを適当にコピってファイルつくる

record_save_sendmail.jp
(function() {
  "use strict";
  // レコード登録時にメールを送信
  kintone.events.on("app.record.create.submit.success", function(e) {
    var records = e.record;
    var to_mailaddr = records['メールアドレス']['value'];
    // 担当者メールアドレスが存在すれば送信する
    if( to_mailaddr !== undefined && to_mailaddr !== '' ){

      var subject = 'レコード追加されました';

      // body
      var textbody = 'Hello '+to_mailaddr+'\n\n';

      Object.keys(records).forEach(
        function(key){

          // Objcet は無視する
          if( typeof records[key]['value'] !== 'object' ){

            // なにもない空欄項目はなしにする
            if( records[key]['value'] == undefined || records[key]['value'] == '' ) {
              records[key]['value'] = 'なし';
            }

            textbody += '【'+key+'】 '+records[key]['value']+'\n\n';
          }
        }
      );

      var sending = new kintone.Promise(function(resolve, reject) {
        // to, cc, bcc, mailFrom, subject, text, html, callback, errback
        kintonePlugin.sendgrid.sendMail(
          to_mailaddr, null, null, 'noreplay@example.com',
          subject, textbody, null,
          function(resp) {
            resolve(e);
          }, function() {
            event.error = 'メール送信に失敗しました';
            reject(e);
          }
        );
      });
      return sending;
    }
  });
})();

ちなみに、空の場合はundefinedになるので、ほんとなら存在するかを見たほうが良い

2. 'noreplay@example.com' を変える

ここは from になる

3. アプリの設定画面を開く

4. 「設定」タブの JavaScript/CSSでカスタマイズ を開く

↓これ
スクリーンショット 2017-05-10 17.27.13.png

5. jsをアップロード

スクリーンショット 2017-05-10 17.27.01.png

6. 設定画面の「アプリの更新」を押す

↓これマジ押し忘れて変更が反映されずブチ切れるハメになるから気をつけような
スクリーンショット 2017-05-10 17.29.21.png

7. レコード保存時に動く

補足

event handle functionの引数e object中の recordは、以下に準拠してるよ
https://cybozudev.zendesk.com/hc/ja/articles/201942014-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97

event自体の詳細はここ
https://cybozudev.zendesk.com/hc/ja/articles/201941984

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1