过滤器 - 自定义DRE函数

自定义函数

Zoho Mail 过滤器现在通过 Zoho Creator 中的 Deluge 脚本支持自定义函数。这允许您用多个参数定制过滤器条件和操作。这帮助您创建并编写简单 Deluge 脚本,以创建自定义操作并在 Zoho Mail 将它们设为过滤器中的条件或操作。此外,这还允许您设置根据特定条件和可定制操作通过邮件触发的工作流。

库函数:

库函数是现成的可用脚本,可直接安装和使用。那里发布的有些库函数可能需要进行少量定制,以使它们适用于您的确切场景或用例。在您编写自己的自定义 Deluge 脚本时,也可以参考这些预先编写的函数,以检索与参数相关的邮件或与邮件相关的操作。(下图当前仅在国际版Zoho Mail企业邮箱内可用) 

用于在过滤器中添加自定义操作的步骤: 

  1. 登录至 Zoho Mail
  2. 点击设置 图标。
  3. 转至过滤器
  4. 点击新建过滤器以添加新过滤器。
  5. 提供基本条件(例如:发件人/主题等)
  6. 在操作中,从下拉列表中选择“自定义函数 (Creator)”。 
  7. 点击选择函数以查看 Deluge 脚本编辑器弹出窗口。 
  8. 您可创建自己的函数,或选择此处的库函数。
  9. 一旦创建自己的一组函数,您可直接在“操作”区域中选择它们。 

Deluge 中的 Zoho Mail:

Zoho Mail 在 Deluge 中提供一些操作来检索当前用户/相关邮件的元数据信息(可通过 Deluge 脚本进行检索):

getFolders:
zoho.mail.getFolders()
列示给定账户的所有文件夹,作为映射
PID-ParentID
ID- FolderID

getLabels:
zoho.mail.getLabels()
列示给定账户的所有标签,作为映射
ID- LabelID
COLOR(十六进制)

getMessage
messageID是必需参数。
zoho.mail.getMessage(mail_messageId)
获取邮件详情作为映射。

以下是映射中可用的关键参数,

CC - 抄送邮箱地址 
RDT - 收件的日期和时间
BCC - 密送邮箱地址
SENDER - 发件人邮箱地址
INREPLYTO - 如果邮件是对另一邮件的回复,则原始邮件的 MailId 将可用于此参数。 
MAILID - 邮箱的唯一邮箱地址。 
PRIORITY - 接收邮件的优先级。
FROM - 邮件中的发件人邮箱地址
SENTTIME - 发件的日期和时间
SENTTIMEINMILLIS - 已作为毫秒转换为长值的发送时间
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= &lt;abc@mydomain.com&gt;, 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}"
}

Zoho Mail 在 Deluge 脚本中所支持的操作: 

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 和d parentFolderId 是此操作的所需参数。如果该文件夹是另一文件夹的子文件夹,则文件夹名称是要创建的文件夹的名称,且 parentFolderId 是必需项。 
zoho.mail.createFolder(folderName, parentFolderId)

markAsRead - 将特定邮件标为已读
markAsUnread - 将特定邮件标为未读
removeFlag - 移除任何应用到邮件的标记。

对于以上 3 个函数,messageId 是必需参数。

过滤器中的 AND/OR 条件: 

目前,Zoho Mail 过滤器不直接支持在多个条件之间使用“OR”和“AND”的组合。如果有此类自定义需求,您可以在“自定义操作”中创建并使用 Deluge 脚本,以组织收件箱或对此类邮件创建自定义规则。 

例如:您可以用类似以下的条件创建过滤器:

If (sender = <sender1@yourdomain.com> or sender=<sender2@yourdomain.com>) and subject = subject1then move email to the folder <folder x>. 

自定义工作流:

Zoho Mail 中的自定义操作支持可帮助您将 Zoho Mail 与其它 Zoho 应用程序或外部应用程序集成,并基于收件创建工作流。 

例如:

如果主题为 "联系我们" 或收件人为 "info@yourdomain.com",则在 Zoho CRM 中将发件人作为一条线索添加。 

如果主题为 "付款通知单xxxx",则抽取总金额并在 Zoho Reports 中将其添加到 <abcde> 数据库。 

基于内容的过滤器: 

默认邮件过滤条件仅支持邮件元数据中提供的参数。因此,不可能用基于内容的条件来创建过滤器。在自定义操作就绪后,您可以编写自己的脚本来针对收到的邮件创建基于内容的条件和操作以更好地组织它们,或创建自定义工作流。 

示例脚本:

单个自定义函数中的链操作


// 要获取邮件数据,使用'mail_messageId'参数 
// 调用Dre参数时从邮件过滤器发送。

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");
}
}

发送短信

sendsms
[
to :"91<10 digit number >"
message:"<your message>"
];

将 SentDateTime 参数转换为 Creator 日期时间格式

时区必须按输入参数中的时区来更改

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 

还是没有找到您要寻找的内容?

写信给我们:support@zohocorp.com.cn