メールの送信

 概要

[Sendmail]タスクは、SkyDesk Creatorアプリケーションからのメールの送信に利用されます。例えば、[フォームのアクション -> 追加時 -> 完了時]スクリプトから[sendmail]関数を起動して、データベースへのレコードの追加が成功した際に、メールを送信できます。迷惑メールを避けるためには、From: アドレスは、[zoho.adminuserid]や[zoho.loginuserid]でない場合は、[To: ]アドレスは、[zoho.adminuserid]を利用します。[sendmail]タスクは、 CC: や BCC: アドレスは使用できません。 この制限を回避するために、SkyDesk Creatorでは、FromやToのアドレスとして使用できる認証メールアドレスを追加することができます。

すべてのレコードに同じ宛先のアドレスを使用する場合、To: 項目に引用符で囲んで["test@skydesk.jp"]のようにアドレスを直接指定することもできます。各レコードに指定したメールIDにメールを送信するには、[ input.<field_name_of_type_email>]を利用します。これは各レコードでメールIDの値を置き換えます。件名とメッセージの項目は、ユーザーの要件に合わせてカスタマイズできます。再度、[input.<field_name>]がレコードの値の代わりに使用されます。

 構文

sendmail
[
From : <string expression>
To : <string expression>
Subject : <string expression>
Message : <string expression>
]

ここでは、

  • To- メールの受信者
  • From- 送信者
  • Subject - メッセージの件名に表示するテキスト
  • Message- メッセージの本文に表示するテキスト
  • <string expression> - From To の無効なメールアドレスや件名や本文の無効な文字列を避ける検証をするDeluge構文です。[subject]と[message]は、オプションのパラメーターです。Delugeスクリプトについての詳細は、Expressionsを参照してください。

メモ:

  • SkyDesk Creatorにサインインしていないユーザーによってアクセスされたフォームの場合、変数[zoho.loginuserid]は、[Public]に設定されます。[Public]は、メールアドレスではないため、メール送信のアクションの実行は失敗します。

 スクリプトビルダーの利用

フォームのGUIから、または[Send mail]タスクを持つDelugeスクリプトを追加することで、フォームのデータを持つメールのメッセージの送信の設定ができます。

  1. フォームのGUIからメール通知を設定するには、GUIからメール通知の設定を参照してください。フォームのGUIから設定されたメール通知は、スクリプトとして、 スクリプトタブの[フォームのアクション -> 追加時 -> 完了時]ブロックに表示されます。
  2. Delugeスクリプトの追加によるフォームのデータを持つメール通知を設定するには、[追加時 -> 完了時]または[編集時 ->完了時]スクリプトに[input.formdata ]変数を使用します。

スクリプトビルダーを利用したメールの送信スクリプトの追加手順

  • スクリプトタブを選択します
  • ページのヘッダーのドロップダウンから対象のフォームを選択します。
  • [フォームのアクション]を選択して、スクリプトを起動します。例えば、レコードが送信された時に、メールを送信したい場合は、フォームのアクション[追加時 -> 完了時]を選択します。
  • 次に、実行に必要なDelugeタスクを選択します。メールを送信するには、編集エリアに[send mail ]タスクをドラッグ&ドロップします。
  • 下記の画面は、Delugeタスクを編集エリアに追加しています。

スクリプトで編集ボタンをクリックすると、[Send Mail]画面が表示されます。

  • メールの送信画面で、From、To、件名 、本文を指定します。
  • [formdata]で送信するには、 リッチテキストタブを選択して、メッセージを下記のように指定します。
  • [完了]をクリックして、スクリプトビルダーに設定を更新します。
  • [スクリプトの保存]をクリックして、スクリプトを保存します。

レコードが送信されると、設定したメールが指定された[To address]にフォームのデータと一緒に送信されます。サンプルの形式は下記になります。

 送信メールでレコードのサマリーを送る

フォームのアクション -> 完了時ブロックで設定した[send mail]タスクに、レコードのサマリーテンプレートを含めることができます。[Include Template]のチェックボックスが選択されていると、そのフォームに作成されたレコードのテンプレートは、下記のように表示されます。対象のテンプレートを選択して、 インラインコンテンツ、またはPDFの添付として送信するかを選択します。カスタムレコードのテンプレートを作成していない場合は、テーブルのフォーマットのフォームのデータに表示されるデフォルトのテンプレートを使用します。

 実例

例 1

会社のCEOが、特定の入社日以降(10-jun-2007)のすべての新入社員を宛先にしたいと思っています。これらすべての従業員にメールしなければなりません。これを実施する方法を見てみましょう。

  1. [Employee] フォームは、 Name、Qualification、EmailID、TeamName、JoinDate項目を持っています。
  2. [追加時 -> 完了時]スクリプトに下記のように記述します。

for each x in Employee [JoinDate >'10-Jul-2007']
{
sendmail
{
To : x.EmailID
From : zoho.adminuserid
Subject : "Meeting at 6:pm tomorrow"
Message : "As our CEO wants to address the new employees, you are requested to attend the meeting.
<br>Thanks"
)
}

コードの説明

  • for each x in Employee [JoinDate > '10-Jul-2007'] - 指定された条件で、[Employee] フォームからレコードを取得することを各レコードで繰り返し、各レコードのメールIDへメールを送信します。ここで、[x]は、各繰り返しで1つのレコードを表すインスタンス変数です。
  • sendmail - メールを送信するDeluge関数です。
  • x.EmailID - 各レコードのメールIDを参照します。

例 2

メールのメッセージでリンク/URLを送信するには、実際のリンクは、下記の例のように単数引用符で囲み<a href>html タグの中に指定する必要があります。コードは、[追加時 -> 完了時]セクションに追加します。

sendmail
(
To : zoho.loginuserid
From : zoho.adminuserid
Subject : "sending links in e-mail messages"
Message : "Please refer the following links :
"<a href=' http://www.company.com/files/att1.pdf '>PDF1</a>" +"<a href=' http://www.company.com/files/att2.pdf '>PDF2</a>"

)

例 3

メールで、特定の項目の値だけを送信する場合、[send mail]タスクに[input. variable]を利用します。例えば、3項目 (Name, Age, Email)があり、メールのメッセージに[Name]と[E-mail] 項目の値にだけ送信します。形式は下記になります。

sendmail
(
To : zoho.loginuserid
From : zoho.adminuserid
Subject : "Order Confirmation"
Message : "Name : "+input.Name+"
" +"Email : "+input.Email
)


例 4

フォームAの[Email ID] 項目に、フォームBの[send mail]タスクの“To Address”を使用するには、 サンプルアプリ Subscribe to Newsletterを参照してください。

 関連トピックス

カスタムアクションとしての関数