<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[email user based on container items]]></title><description><![CDATA[<p dir="auto">I have emails setup to email a user upon all critical alerts and resolution of given alerts.  Is there is method to email an additional user only for nodes within a container? </p>
<p dir="auto">Thank you for your assistance!</p>
]]></description><link>https://forum.netxms.org/topic/3894/email-user-based-on-container-items</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 14:43:12 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/3894.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Jul 2015 21:15:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to email user based on container items on Fri, 11 Sep 2015 17:39:51 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/17783">email user based on container items</a>:</p>
<blockquote>
<pre><code>rcpt = GetRecipients($node);
return (rcpt != null) ? rcpt : "default@email";  // fallback email if nothing was set in containers

sub GetRecipients(obj)
{
    foreach(p : GetObjectParents(obj))
    {
        rcpt = GetCustomAttribute(p, "recipients");
	if (rcpt != null)
		return rcpt;
    }
    foreach(p : GetObjectParents(obj))
    {
        rcpt = GetRecipients(p);
	if (rcpt != null)
		return rcpt;
    }
    return null;
}
</code></pre>
</blockquote>
<p dir="auto">I've used this one (the second) and it rocks! Thank you very much for your help.  <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--smile" style="height:1.4em;width:auto;vertical-align:middle" title=":D" alt="😄" /></p>
<p dir="auto">Best remarks,<br />
Marco</p>
]]></description><link>https://forum.netxms.org/post/17784</link><guid isPermaLink="true">https://forum.netxms.org/post/17784</guid><dc:creator><![CDATA[Jmp_3f8h]]></dc:creator><pubDate>Fri, 11 Sep 2015 17:39:51 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Fri, 11 Sep 2015 12:37:36 GMT]]></title><description><![CDATA[<p dir="auto">Only direct parents are examined. Recursive script could looks like this:</p>
<pre><code>rcpt = GetRecipients($node);
return (rcpt != null) ? rcpt : "default@email";  // fallback email if nothing was set in containers

sub GetRecipients(obj)
{
    rcpt = GetCustomAttribute(obj, "recipients");
    if (rcpt != null)
	 return rcpt;
    foreach(p : GetObjectParents(obj))
    {
        rcpt = GetRecipients(p);
  	if (rcpt != null)
 		return rcpt;
    }
    return null;
}
</code></pre>
<p dir="auto">and if you want that any closest parent had higher priority:</p>
<pre><code>rcpt = GetRecipients($node);
return (rcpt != null) ? rcpt : "default@email";  // fallback email if nothing was set in containers

sub GetRecipients(obj)
{
    foreach(p : GetObjectParents(obj))
    {
        rcpt = GetCustomAttribute(p, "recipients");
	if (rcpt != null)
		return rcpt;
    }
    foreach(p : GetObjectParents(obj))
    {
        rcpt = GetRecipients(p);
	if (rcpt != null)
		return rcpt;
    }
    return null;
}
</code></pre>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/17783</link><guid isPermaLink="true">https://forum.netxms.org/post/17783</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Fri, 11 Sep 2015 12:37:36 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Fri, 11 Sep 2015 12:27:00 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/17780">email user based on container items</a>:</p>
<blockquote>
<p dir="auto">Hi,</p>
<p dir="auto">how script to extract recipients looks like?</p>
<p dir="auto">Best regards,<br />
Victor</p>
</blockquote>
<p dir="auto">Exactly like te one you posted in your example, I assumed (wrongly at this point) that all the parents were explored in the "foreach" statement.</p>
<p dir="auto">Marco</p>
]]></description><link>https://forum.netxms.org/post/17781</link><guid isPermaLink="true">https://forum.netxms.org/post/17781</guid><dc:creator><![CDATA[Jmp_3f8h]]></dc:creator><pubDate>Fri, 11 Sep 2015 12:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Fri, 11 Sep 2015 12:24:32 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">how script to extract recipients looks like?</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/17780</link><guid isPermaLink="true">https://forum.netxms.org/post/17780</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Fri, 11 Sep 2015 12:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Thu, 10 Sep 2015 21:55:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/victor" aria-label="Profile: victor">@<bdi>victor</bdi></a> said in <a href="/post/17448">email user based on container items</a>:</p>
<blockquote>
<p dir="auto">It will return emails configured in parent container for node in custom attribute "recipients", or default email if nothing is configured. Script can be made more complicated to collect all recipients on all upper layers and combine them into single recipient list.</p>
</blockquote>
<p dir="auto">Hi Victor,</p>
<p dir="auto">Have a look to the attached image. Is it possible to find the custom attribute in a "top level" parent container? I've created the custom attribute "recipients" into the container "Thinksoft" but when the alarm is generated from an inner node (e.g. VM-REDQUEEN three levels down or SKYNET two levels down) that custom attribute seems ignored.</p>
<p dir="auto">Best regards,<br />
Marco</p>
<hr />
<p dir="auto"><img src="/assets/uploads/files/smf/0000000002489-tree.PNG" alt="tree.PNG" class="img-markdown  img-fluid" width="255" height="335" /></p>
]]></description><link>https://forum.netxms.org/post/17774</link><guid isPermaLink="true">https://forum.netxms.org/post/17774</guid><dc:creator><![CDATA[Jmp_3f8h]]></dc:creator><pubDate>Thu, 10 Sep 2015 21:55:46 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Tue, 18 Aug 2015 14:50:44 GMT]]></title><description><![CDATA[<p dir="auto">Thank you Victor, I will give that a try.  It is easier than setting up different alerts and actions for each email address.</p>
]]></description><link>https://forum.netxms.org/post/17580</link><guid isPermaLink="true">https://forum.netxms.org/post/17580</guid><dc:creator><![CDATA[curruscanis]]></dc:creator><pubDate>Tue, 18 Aug 2015 14:50:44 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Tue, 04 Aug 2015 15:06:57 GMT]]></title><description><![CDATA[<p dir="auto">You can set responsible person's in container's custom attribute, and create universal action that will use script to extract recipient. For example, you can definie recipients in email action like this:</p>
<p dir="auto">%[GetRecipients]</p>
<p dir="auto">Then, create script in script library caled "GetRecipients" like this:</p>
<pre><code>foreach(p : GetNodeParents($node))
{
	rcpt = GetCustomAttribute(p, "recipients");
	if (rcpt != null)
		return rcpt;
}
return "default@email";  // fallback email if nothing was set in containers
</code></pre>
<p dir="auto">It will return emails configured in parent container for node in custom attribute "recipients", or default email if nothing is configured. Script can be made more complicated to collect all recipients on all upper layers and combine them into single recipient list.</p>
<p dir="auto">Best regards,<br />
Victor</p>
]]></description><link>https://forum.netxms.org/post/17448</link><guid isPermaLink="true">https://forum.netxms.org/post/17448</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 04 Aug 2015 15:06:57 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Tue, 28 Jul 2015 20:16:04 GMT]]></title><description><![CDATA[<p dir="auto">Thank you Alex, that is what I came up with too.  I was hoping there was a way to alter a given rule in the event processing that would do both.  If I have to create a new rule for each container that has a different person responsible it will eventually be a lot of redundant rules with the only difference being the email destination.</p>
]]></description><link>https://forum.netxms.org/post/17395</link><guid isPermaLink="true">https://forum.netxms.org/post/17395</guid><dc:creator><![CDATA[curruscanis]]></dc:creator><pubDate>Tue, 28 Jul 2015 20:16:04 GMT</pubDate></item><item><title><![CDATA[Reply to email user based on container items on Mon, 27 Jul 2015 22:24:52 GMT]]></title><description><![CDATA[<p dir="auto">Just add additional rule into EPP. Set events=(list), source=container, action=email-to-additional-user</p>
]]></description><link>https://forum.netxms.org/post/17388</link><guid isPermaLink="true">https://forum.netxms.org/post/17388</guid><dc:creator><![CDATA[alk]]></dc:creator><pubDate>Mon, 27 Jul 2015 22:24:52 GMT</pubDate></item></channel></rss>