カスタム関数
Zoho Mailのフィルターは、Zoho CreatorのDelugeスクリプトで作成されたカスタム関数をサポートしています。このため、複数のパラメーターを使用してフィルター条件と操作をカスタマイズできます。カスタマイズにより、単純なDelugeスクリプトを記述してカスタムアクションを作成し、Zoho Mailのフィルターの条件またはアクションとして設定できます。さらに、特定の条件やカスタマイズ可能なアクションに基づいて、メールで実行できるワークフローを設定できます。
ギャラリー関数:
ギャラリー関数は、インストールして直接使用できるように提供されている既製のスクリプトです。公開されているギャラリー関数によっては、具体的なシナリオや利用例に適用するためには、若干のカスタマイズが必要になることがあります。これらの既製の関数は、独自のカスタムDelugeスクリプトを作成するときに、メールに関連するパラメーターまたはメールに関連するアクションを取得するための参照用としても使用できます。
フィルターにカスタムアクションを追加する手順:
- Zoho Mailにサインインしてください。
- [設定]アイコンをクリックしてください。
- [フィルター]に移動してください。
- [新規フィルター]をクリックして、新しいフィルターを追加してください。
- 基本条件を指定してください(例:送信者/件名など)。
- [アクション]のドロップダウンから[カスタム関数(Creator)]を選択してください。
- [関数の選択]をクリックして、[Delugeスクリプトエディター]ポップアップを表示します。
- ここでは、独自の関数を作成することも、ギャラリー関数を選択することもできます。
- 作成した独自の関数の一覧は、[アクション]のランで直接選択できます。
DelugeでのZoho Mail:
Zoho Mailでは、Delugeスクリプトで現在のユーザー/関連メールのメタデータ情報を取得するための特定アクションがDelugeで用意されています。
getFolders:
zoho.mail.getFolders()
指定されたアカウントのすべてのフォルダーをマップとしてリスト表示
PID-ParentID
ID- FolderID
getLabels:
zoho.mail.getLabels()
指定されたアカウントのすべてのラベルをマップとしてリスト表示
ID- LabelID
COLORは16進数
getMessage:
messageIDは必須パラメーターです。
zoho.mail.getMessage(mail_messageId)
メッセージの詳細をマップとして取得
マップで使用可能な主なパラメーターは次のとおりです。
CC - CCメールアドレス
RDT - 受信日時
BCC - BCCメールアドレス
SENDER - 送信者のメールアドレス
INREPLYTO - メールが他のメールへの返信である場合、元のメールのMailIdがこのパラメーターで使用できます。
MAILID - このメールの一意のメールアドレス。
PRIORITY - メールを受信する優先度。
FROM - メールの送信元アドレス
SENTTIME - メールの送信日時
SENTTIMEINMILLIS - 送信時間(ミリ秒単位のlong値に変換)
SUBJECT - メールの件名
TO - メールの送信先のメールアドレス
CONTENT - メールの内容
RETURNPATH - メールが返送された場合のメール返信先パス
サンプル出力:
{MAILID=<15286cfac05.f8beb27b-358249608.6985583661857771020@somewhere.com>, SUBJECT="Wow this is amazing!", SENTTIME=Thu, 28 Jan 2016 11:28:22 +0530, SENDER=someone@somewhere.com, PRIORITY=3, SENTTIMEINMILLIS=1453940902000, TO= <abc@mydomain.com>, RDT=Thu, 28 Jan 2016 11:28:27 +0530, BCC=, INREPLYTO=, CONTENT=, CC=, STATUS2ID=0, FROM=noreply@zohosmtpin.india.adventnet.com, RETURNPATH=<noreply@zohosmtpin.india.adventnet.com>, conv=true, SHRINKED=false}"
}
DelugeスクリプトによりZoho Mailでサポートされているアクション:
moveToFolder
messageIdとtoFolderName/ toFolderIdは必須パラメーターです。(toFolderNameは、メールの移動先のフォルダー名)
zoho.mail.moveToFolder(mail_messageId, "/toFolderName") OR zoho.mail.moveToFolder(mail_messageId, toFolderId)
注:
- 宛先フォルダーがサブフォルダーの場合、そのフォルダー名にフォルダーのパス全体を指定する必要があります。
例:「/Inbox/Marketing/Design」
setTag
messageIdとTagName/TagIdは必須パラメーターです。(tagNameは、そのメールに適用するタグの名前です。)
zoho.mail.setTag(mail_messageId, "TagName") OR zoho.mail.setTag(mail_messageId, TagId)
createFolder
folderNameとparentFolderIdがこのアクションの必須パラメーターです。folderNameは作成するフォルダー名の名前で、そのフォルダーが他のフォルダーのサブフォルダーである場合はParentFolderIDが必要です。
zoho.mail.createFolder(folderName, parentFolderId)
markAsRead - 特定のメールを既読として設定
markAsUnread - 特定のメールを未読として設定
removeFlag - メッセージに適用したフラグをすべて削除
上記3つの関数では、messageIdが必須パラメーターです。
フィルターでのAND/OR条件:
現在、Zoho Mailのフィルターは、複数の条件の間で、ORとANDの組み合わせの使用を直接サポートしていません。このような個別の要件がある場合は、[カスタムアクション]でDelugeスクリプトを作成して使用し、受信トレイを整理したり、そのようなメールのカスタムルールを作成したりできます。
例:次のような条件を持つフィルターを作成できます。
(sender = <sender1@yourdomain.com>またはsender=<sender2@yourdomain.com>)かつsubject = subject1の場合、メールをフォルダー<folder x>に移動する。
カスタムワークフロー:
Zoho Mailのカスタムアクションサポートにより、Zoho Mailと他のZohoアプリケーションや外部アプリケーションを連携させて、受信メールに基づくワークフローを作成できます。
例:
Subject = "Contact us"またはTo = "info@yourdomain.com"の場合、Zoho CRMで送信者を見込み客として追加する。
Subject = "Invoice xxxx"の場合、合計金額を抽出してZoho Reportsでデータベース<abcde>に追加する。
内容に応じたフィルター:
初期設定のメールフィルター条件では、メールのメタデータで使用可能なパラメーターのみがサポートされています。そのため、「内容」に応じた条件を持つフィルターは作成できません。カスタムアクションを作成したら、スクリプトを記述して受信メールに関する内容に応じた条件とアクションを作成することにより、より適切にメールを整理したり、カスタムワークフローを作成したりできます。
サンプルのスクリプト:
1つのカスタム関数でアクションを連結する
//メールデータを取得するには、Dre関数を呼び出すときに
//メールフィルターから送信された「mail_messageid」を使用する。
messageDetails = zoho.mail.getMessage(mail_messageId);
mailContent = messageDetails.get("CONTENT");
mailSubject = messageDetails.get("SUBJECT");
fromAddress = messageDetails.get("FROM");
moveToFolderName = "ToDoList";
folderId = -1;
folderDetails = zoho.mail.getFolders();
for each folder in folderDetails
{
folderName = folder.get("NAME");
if(folderName == moveToFolderName)
{
zoho.mail.moveToFolder(mail_messageId,folder.get("ID"));
}
}
myTask = 123456;
othersTask = 234567;
if(fromAddress.contains("replacecontenthere"))
{
zoho.mail.setLabel(mail_messageId,myTask);
}
else
{
zoho.mail.setLabel(mail_messageId,othersTask);
}
指定されたラベル名のラベル詳細を取得する:
tagId= -1;
tagDetails = zoho.mail.getLabels();
for each tag in tagDetails
{
if(tag.get("NAME") == "High Priority")
{
tagId = tag.get("ID");
}
}
SMSを送信する
sendsms
[
to :"91<10 digit number >"
message:"<your message>"
];
SentDateTimeパラメーターを作成者の日時の形式に変換する
タイムゾーンは、入力パラメーターのTimeZoneに従って変更する必要があります。
messageDetails = zoho.mail.getMessage(mail_messageId);
mailDate = messageDetails.get("SENTTIME");
mailDateString = mailDate.toDate("E, dd MMM yyyy HH:mm:ss +0530"); //20-Apr-2017の形式で出力
mailDateTimeString = mailDate.toTime("E, dd MMM yyyy HH:mm:ss +0530"); //20-Apr-2017 13:23:06の形式で出力