自定义函数
Zoho Mail 筛选器现在通过 Zoho Creator 中的 Deluge 脚本支持自定义函数。因此,您可以使用多个参数自定义筛选器条件和操作。这有助于您创建和编写简单的 Deluge 脚本,创建自定义操作,并将这些操作设置为 Zoho Mail 筛选器中的条件或操作。此外,这还使您能够设置工作流,这些工作流将由电子邮件根据特定条件和可自定义的操作触发。
库函数:
库函数中提供了可直接安装和使用的现成脚本。其中的某些库函数可能需要少量自定义设置才能适用于您的具体方案或用例。您在编写自己的自定义 Deluge 脚本时,可以参考这些预先编写的函数来检索与邮件相关的参数或操作。
在筛选器中添加自定义操作的操作步骤:
- 登录 Zoho Mail
- 单击设置图标。
- 转到筛选器
- 单击新建筛选器以添加新筛选器。
- 提供基本条件(例如:发件人/主题等)
- 在操作中,从下拉列表中选择自定义函数 (Creator)。
- 单击选择函数,以查看“Deluge 脚本”编辑器弹出窗口。
- 您可以在窗口中创建自己的函数或选择库函数。
- 创建自己的一组函数后,即可直接在“操作”区域中选择它们。
注意:
您还可以使用 DRE 连接器与所选择的任何第三方应用建立连接。
Zoho Mail 中支持的 Deluge 脚本:
Zoho Mail 在 Deluge 中提供了某些操作,可用于通过 Deluge 脚本检索当前用户/相关电子邮件的元数据信息:
- getFolders-列出指定帐户的所有文件夹。
- getLabels - 列出指定帐户的所有标签。
- getMessage - 检索电子邮件的详细信息。
Zoho Mail 中通过 Deluge 脚本支持的操作:
- createFolder - 在 Zoho Mail 中创建新文件夹。
- moveToFolder - 将电子邮件移动到文件夹。
- Createetag - 创建标签和标记电子邮件。
- setTag - 为电子邮件设置标签。
- markAsRead - 将特定电子邮件标记为已读
- markAsUnread - 将特定电子邮件标记为未读。
- setflag - 用于为邮件添加标签。
- removeFlag - 删除应用于邮件的任何标签。
筛选器中的 AND/OR 条件:
目前,Zoho Mail 筛选器不直接支持在多个条件之间组合使用 OR 和 AND。如果您有此类自定义需求,可以在“自定义操作”中创建并使用 Deluge 脚本来归类整理收件箱或为此类电子邮件创建自定义规则。
例如:您可以创建一个采用如下条件的筛选器:
If (sender = <sender1@yourdomain.com> or sender=<sender2@yourdomain.com>) and subject = subject1 then move email to the folder <folder x>。
自定义工作流:
Zoho Mail 中的“自定义操作”支持可帮助您将 Zoho Mail 与其他 Zoho 应用或外部应用进行集成,并基于传入和外发电子邮件创建工作流。
例如:
如果主题为“联系我们”或收件人为“info@yourdomain.com”,则将发件人添加为 Zoho CRM 中的销售线索。
如果主题为“账单 xxxx”,则提取总额并将该值添加到 Zoho Reports 的 <abcde> 数据库中。
基于内容的筛选器:
默认的电子邮件筛选器条件仅支持电子邮件元数据中的可用参数。因此,无法创建基于内容条件的筛选器。通过实施自定义操作,您可以编写脚本来为传入和外发电子邮件创建基于内容的条件和操作,以便更好地归类整理邮件或创建自定义工作流。
脚本示例:
在单个自定义函数中链接操作
// To get the email data, use the 'mail_messageId' parameter
// sent from mail filter when calling the Dre function.
messageDetails = zoho.mail.getMessage(mail_messageId); mailContent = messageDetails.get("CONTENT"); mailSubject = messageDetails.get("SUBJECT"); fromAddress = messageDetails.get("FROM"); moveToFolderPath = "/ToDoList"; zoho.mail.moveToFolder(mail_messageId,moveToFolderPath); 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");
}
}
将 SentDateTime 参数转换为“Creator 日期/时间”格式
必须根据输入参数中的 TimeZone 更改时区
messageDetails = zoho.mail.getMessage(mail_messageId); mailDate = messageDetails.get("SENTTIME"); mailDateString = mailDate.toDate("E, dd MMM yyyy HH:mm:ss +0530"); //gives output in format 20-Apr-2017 mailDateTimeString = mailDate.toTime("E, dd MMM yyyy HH:mm:ss +0530"); //gives output in format 20-Apr-2017 13:23:06