Notes アプリ開発とメールの送信は切っても切れない関係といえますね。今回は、式言語でメールを送信する @MailSend について紹介します。
構文
ヘルプによると @MailSend の構文は次のように、引数のあり/なしの 2 通りあります。
@MailSend |
@MailSend( sendTo ; copyTo ; blindCopyTo ; subject ; remark ; bodyFields ; [ flags ] ) |
今回は、前者の引数なしのパターンを紹介します。
引数なしでメール送信できる訳
引数なしということは、宛先も指定しないの? と疑問がわきますが、大丈夫です。この機能は、文書内のフィールド値を使用して送信する機能となっています。
簡単なサンプルとして次のようなフォームを作成します。
フォームをプリビューして、宛先と件名を入力し、[メール送信]ボタンをクリックします。
すると、宛先に指定したユーザのメールボックスにメールが届きます。
とっても簡単ですね。そして仕組みも単純です。
@MailSend を実行する文書にある SendTo が宛先、Subject が件名として使用されます。このように、特定の役割を持ったフィールド名を予約フィールドといいます。
予約フィールド
メールの配信制御に関連する予約フィールドはヘルプに詳細が記載されています。
通常、メール送信で使用する予約フィールドをまとめると次の通りです。
予約フィールド | 役割・使い方 |
SendTo | 宛先(リスト値可) |
CopyTo | CC(リスト値可) |
BlindCopyTo | BCC(リスト値可) |
Subject | メールの件名 |
Body | メールの本文 |
ReturnReceipt | 受信者がメールを開いたとき、開封確認を送る場合 "1" を指定 |
すべてのフィールドを送信
@MailSend では、送信する文書内のすべてのフィールドをメールで配信されます。例えば、次のようにフィールドを 3 つ追加してメールを送信してみます。
すると届いたメールの文書プロパティでこれらフィールドが確認できます。
Notes メールは、メールとは関係ないフィールドがメール内にあっても、そのまま配信するようです。文書を丸ごと配信する感じですね。いかにもノーツらしい挙動です。
リッチテキストの送信
メールの本文(Body)フィールドはリッチテキストです。これに倣い、作成したフォームの Body フィールドをリッチテキストに変更します。文書を新規作成し、本文を記入して送信しても、届いたメールの本文は空っぽとなります。
リッチテキストは文書を保存しないと @MailSend で送信できない仕様のようです。ただ、文書を保存してから送信するとメールを開く際にエラーが発生します。
これは、送信元の Form フィールドまで含めて送信されているからです。すべてのフィールドが送信される機能の弊害と言えますね。ちなみにメール DB にあわせて、送信元のフォーム名を "Memo" としておくとこのエラーは回避できます。
まとめ
今回は @MailSend の引数なしで使用する方法を紹介しました。引数がないので@式はシンプルになりますが、フィールド名が固定されたり、フォーム名を意識したする必要がありました。また、すべてのフィールドが送信されることもあり、アプリで利用するには制限が多く、活用しづらい機能と言えます。
このような課題を解決するのが引数ありの @MailSend となります。次回、使い方を紹介します。
0 件のコメント:
コメントを投稿