<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: e-mail &quot;on-error=&quot;]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме e-mail &quot;on-error=&quot; форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 13 Aug 2026 07:19:05 -0400</pubDate>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392670">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Большое спасибо... это почти идеально подходит для цели! Думаю, будет отлично работать в большинстве обычных случаев. Но, на мой взгляд, в некоторых особых ситуациях этот подход подведёт. Я сделал такой скрипт: <br /><br />:local attempts 0; &nbsp;<br />do { &nbsp;<br />	:set attempts ($attempts+1); &nbsp;<br />	:if ($attempts &gt; 1) do {:log info ("ERROR - статус последнего письма: ".[/tool e-mail get last-status]<img  src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="http://mikrotik.moscow/upload/main/smiles/2/bx_smile_wink.png" border="0" data-code=";)" data-definition="UHD" alt=";)" style="width:20px;height:20px;" title="Шутливо" class="lazyload bx-smile" />; :delay 2s;} &nbsp;<br />	/tool e-mail send ... ; &nbsp;<br />	do {:delay 200ms;} while ([/tool e-mail get last-status] = "in-progress")  <br />} while ($attempts &lt; 5 and [/tool e-mail get last-status] != "succeeded")<br /><br />То есть скрипт пытается отправлять письмо заново каждые 2 секунды, если последний статус не “succeeded”. Но представим, что одна отправка письма с большим вложением ещё в процессе и занимает много времени (last-status = ‘in-progress’). Теперь представим, что в этот момент отправляется другое, короткое письмо. Если второе письмо ушло успешно, last-status обновится на ‘succeeded’, и первый скрипт прекратит работу — он уже не проверит, удалось ли отправить первое письмо или нет. А если первое письмо упадёт с ошибкой, оно не будет отправлено заново. Это так? <br />
			<i>17.03.2017 10:42:00, Def.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392670</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392670</guid>
			<pubDate>Fri, 17 Mar 2017 10:42:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392669">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Еще один способ проверить, были ли проблемы с отправкой письма — это посмотреть значение «last-status». Я иногда использую это в скриптах, чтобы проверить, был ли последний попытка отправки успешной или нет. &nbsp;<br />[admin@stationDude] &gt; :global mailStatus [/tool e-mail get last-status]  <br />[admin@stationDude] &gt; :put $mailStatus  <br />succeeded <br />
			<i>17.03.2017 09:18:00, krisjanis.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392669</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392669</guid>
			<pubDate>Fri, 17 Mar 2017 09:18:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392668">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо. Я уже пробовал что-то похожее, но не работает. Как написал Martin S. выше про 23q: сам e-mail инструмент в CLI ошибки не возвращает и работает в фоне. on-error — не решение для e-mail инструмента. <br /><br />Тем не менее, я попробовал твое предложение вот так:<br />{<br />	:local RES 1;<br />	:do {<br />		:do {<br />			:log info "Отправляем письмо...";<br />			/tool e-mail send ... ;<br />			:log info "Письмо отправлено.";<br />		} on-error={<br />			:log info "!Ошибка при отправке письма";<br />			:set RES 0;<br />		}<br />	} while (RES = 0)<br />	:log info "Завершено.";<br />}<br /><br />И вот что выводит лог: <img class="lazyload "  src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="/upload/forum/mikrotik/10d9381ed076493259ae7dab06952b036b08ff44.jpeg" alt="Пользователь добавил изображение" border="0" /><br /><br />Есть ли какой-нибудь другой способ обработать ошибки при отправке почты? <br />
			<i>17.03.2017 07:14:00, Def.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392668</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392668</guid>
			<pubDate>Fri, 17 Mar 2017 07:14:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392667">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Почти вот так {<br /> &nbsp;:local RES 1;<br /> &nbsp;:do {<br /> &nbsp; &nbsp; :do { ... отправить письмо ... } on-error={ :log info "!Ошибка при отправке письма"; :set RES 0; }<br /> &nbsp;} while( RES = 0 )<br />} <br />
			<i>16.03.2017 20:08:00, BartoszP.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392667</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392667</guid>
			<pubDate>Thu, 16 Mar 2017 20:08:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392666">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо за быстрый ответ. Я не совсем понимаю, что вы имеете в виду. Как я могу заполнить глобальную переменную результатом отправки письма (успешно оно отправлено или нет)? Если я пытаюсь так: &nbsp;<br />:global RES &nbsp;<br />:set RES [/tool e-mail send to="..." body="..." subject="..."]  <br />переменная RES остаётся пустой после этого. <br />
			<i>16.03.2017 16:00:00, Def.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392666</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392666</guid>
			<pubDate>Thu, 16 Mar 2017 16:00:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392665">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			В разделе on-error установите глобальную переменную для отправки результата. В запланированном скрипте повторно отправьте письмо, если это необходимо. Вы также можете использовать эту переменную как условие в конструкции :do { } while=( ); чтобы эффективно отправлять письмо. <br />
			<i>16.03.2017 15:42:00, BartoszP.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392665</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392665</guid>
			<pubDate>Thu, 16 Mar 2017 15:42:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392664">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Всем привет, столкнулся с той же проблемой. Нужно обработать ошибки, которые возникают при отправке письма. Как можно поймать такую ошибку (если ‘on-error’ — не подходящее решение)? Моя цель — обнаружить ошибку при отправке письма и в таком случае попробовать отправить его снова. Всем заранее спасибо! <br />
			<i>16.03.2017 15:35:00, Def.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392664</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392664</guid>
			<pubDate>Thu, 16 Mar 2017 15:35:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>e-mail &quot;on-error=&quot;</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392663">e-mail &quot;on-error=&quot;</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			:do {/tool e-mail send server=1.1.1.1 port=25 user=admin@test.com password=111 start-tls=yes to="111@gmail.com" from=admin@test.com subject="555" body="sdg"} on-error={ :log info "hh"} если smtp-сервер 1.1.1.1 не работает – “on-error={ :log info “hh”}” тоже не срабатывает! <img class="lazyload "  src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="/upload/forum/mikrotik/8fe7266aa877ed1cffeb60f9b5028ab7ee71a4f3.jpeg" alt="Пользователь добавил изображение" border="0" /> <br />
			<i>13.08.2016 19:56:00, 23q.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392663</link>
			<guid>http://mikrotik.moscow/forum/forum57/85045-e_mail-_on_error_/message392663</guid>
			<pubDate>Sat, 13 Aug 2016 19:56:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
