(著者:サイボウズ 北川 恭平)
今回はレコード詳細画面で、配置したリンクのクリックでメールソフトを立ち上げてkintoneの情報を元に宛先・件名・本文を予め入力しておく方法について紹介します。
利用シーンとしては、例えばkintoneで管理した情報を社外の人に共有したいというケースがあると思います。
その場合、メールソフトを立ち上げる。件名の情報をレコード詳細画面からコピペする。本文の情報をレコード詳細画面からコピペする…とちょっと手間ですよね。
そこで、コピペの手間を減らすカスタマイズを紹介します。
実装の手順と流れ
- リンクを配置する場所の要素を取得する。
- ログインユーザーのE-mail情報、レコード詳細画面の情報を取得する。
- 1で取得した要素の子要素として2の情報を設定したリンク(aタグ)を追加する。
リンクを配置する場所の要素を取得する
まず、レコード詳細画面を開いたときにリンクを作成するのでイベント取得を設定します。
cybozu developer networkのこちらを参考に、今回はレコード詳細画面の右側の要素を取得します。
赤い点線部分の要素を取得
レコード詳細画面の情報を取得する
レコード詳細画面の情報を取得します。今回は例として、フィールドコード「title」「honbun」の文字列を取得します。
レコード内の文字列を取得
メールソフトを立ち上げて取得した情報をセットするリンクを配置する
メニュー右側の空白部分に、取得した情報をセットしたaタグを配置します。
配置したリンクを押して、挙動を確認します。
レコード詳細画面のリンクをクリック
メールソフト起動時の画面
※メールソフトの起動設定はユーザが利用する個々のブラウザの設定に依存します。設定によってはメールソフトが起動しない場合があります。
このTipsは、2014年4月版で確認したものになります。
まったくの素人ですが、よろしくお願いいたします。
本文エリアに、複数のフィールドからの情報をセットしたいと考えております。
フィールドAからの「○○」、 フィールドBから「××」を
フィールドA名:○○ (改行)
フィールドB名:××
のような文面に整えたいです。どのように書けばいいのか、ご教示いただけると幸いです。
よろしくお願いいたします。
bear-ku様
いつもお世話になっております。
cybozu.com developer network事務局です。
ご質問いただいた内容ですが、こちらの記事の一部を下記を参考に
修正していただけると実現できると思います。
//文字列フィールドの取得
var title = event['record']['title']['value'];
var fieldA = event['record']['フィールドA']['value'];
var fieldB = event['record']['フィールドB']['value'];
var honbun = 'フィールドA名:' + fieldA + '%0D%0A' + 'フィールドB名:' + fieldB;
「レコード詳細画面の情報を取得する」の内容を少し修正しておりますが、やっていることは、
フィールドA+改行(%0D%0A)+フィールドBの内容を honbun にいれています。
こちらは、デフォルトのメーラーをOutlookにした場合の動作確認は実施済みです。
参考になりますと幸いです。
よろしくお願いします。
ありがとうございました!素敵な文面に自動セットできました。大変わかりやすかったです。
いくつかパターンをつくってみます。また不明点が出てきましたら質問させていただきます。
承認が終わったらメールを送るフローがあるので、
Kintoneとメール連携できるものを探していたのですが、
JSカスタマイズでできるとは。これは凄いです。
添付ファイルもメールにコピーできるとさらに良いのですが、できないでしょうか。
決まったフィールドの最初の1個とか、決まった添付ファイル名とかの縛りがあっても、凄く使い勝手が上がるのですが。。。
Kanegon様
フィードバックありがとうございます。調べてみましたが、mailtoプロトコルでは、添付ファイルを扱うことはできないようです。
kintoneと特定のメールサービスを連携できるサンプルを企画中ですので、そちらが公開されたらご参考いただければと思います。
本記事を活用させて頂いております。
コピーする際の文言の中に、"&"を入れた場合、&以降の部分がコピーされなくなってしまうのですが、回避策はありますでしょうか?
takashi様
ご活用いただき、ありがとうございます。
ご質問いただきました、メールにコピーするテキスト内に"&"があった場合についてですが、半角”&”は、HTMLで特殊文字に指定されております。
回避策としては、以下の2つが考えられます。
・文字列に半角”&”が含まれる場合に変換するプログラムを追加する
・運用ルール上、半角”&”を使わない
よろしくお願いいたします。
ご教示ありがとうございました!
&を使う際は大文字で運用にすることで、解決ができそうです。
takashi様
解決できそうとのことで、良かったです!
今後ともよろしくお願いいたします。
この方法だと2000字を超える長文に対応できないのですが
長文のメールをメールソフトで開きたい時はどうしたら良いでしょうか?
tanaka 様
ご質問いただきありがとうございます。
以下に参考になりそうな記事のリンクを添付致します。
1.Gmail連携 - kintoneからGmailの送受信をしよう!!
https://developer.cybozu.io/hc/ja/articles/360000821483
こちらはこのページの記事と似たようなシナリオで、
kintoneからGmailを利用してメールを受送信る方法を紹介した記事です。
この記事を手元で試してみると、2000文字以上の長文のメールにも対応していることが確認できました。
Gmailをご利用の場合は、こちらの記事を参考にしていただければと思います。
2.Outlook連携 - kintoneからOutlookメールの送受信をしよう!!
https://developer.cybozu.io/hc/ja/articles/360000073446
まだ手元で確認できておりませんが、こちらも似たようなシナリオで、
kintoneからOutlookを利用して、メールを受送信する方法を紹介した記事です。
Outlookをご利用の場合は、こちらの記事を参考に試していただければと思います。
よろしくお願いします。
こちら素晴らしい機能です。
1点質問させてください。
//文字列フィールドの取得
var title = event['record']['title']['value'];
var fieldA = event['record']['フィールドA']['value'];
var fieldB = event['record']['フィールドB']['value'];
var honbun = 'フィールドA名:' + fieldA + '%0D%0A' + 'フィールドB名:' + fieldB;
というやり方ではなく、
キントーンのアプリ内に 本文フィールドを作成し、
本文フィールドの中に
「 [CustomerName]様
いつもお世話になっております。
お問い合わせ番号[ID]の件でご連絡しました。」
といった形でユーザ側が入力([CustomerName] や[ID] は別フィールドに入っている) して、固有にテンプレートを作成させるような方法はありませんでしょうか。
よろしくお願いします。
DTKiyo 様
お世話になっております。cybozu.com developer network事務局です。
記載いただいたやり方以外の方法がすぐには思いつきませんでした。
また、こちらのコメント欄は記事へのフィードバック用となります。
質問が記事のシナリオと異なる場合、コミュニティでの質問をお願いしております。
恐れ入りますが、以下のコミュニティで再度ご投稿いただけますでしょうか。
JavaScript developer向けフォーラム
https://developer.cybozu.io/hc/ja/community/topics/20003434
よろしくお願い申し上げます。
本記事を活用させて頂こうと思っているのですが
テーブルフォームの中の文字列(1行)をメールの本文に転記したいのですが、うまくいかないです。
よろしくお願いします。
川西教仁 様
お世話になっております。cybozu developer network 運営でございます。
こちらのコメント欄は記事内容のフィードバック目的となっているため、
技術的なご質問はcybozu developer コミュニティをご活用ください。
よろしくお願い致します。