Информация
Настройка
Новости
Контакты
Новинка
Распродажа
Оплата
Доставка
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    e-mail "on-error="

    e-mail "on-error="

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    e-mail "on-error=", RouterOS
     
    23q
    Guest
    #1
    0
    13.08.2016 19:56:00
    :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”}” тоже не срабатывает!
     
     
     
    Def
    Guest
    #2
    0
    16.03.2017 15:35:00
    Всем привет, столкнулся с той же проблемой. Нужно обработать ошибки, которые возникают при отправке письма. Как можно поймать такую ошибку (если ‘on-error’ — не подходящее решение)? Моя цель — обнаружить ошибку при отправке письма и в таком случае попробовать отправить его снова. Всем заранее спасибо!
     
     
     
    BartoszP
    Guest
    #3
    0
    16.03.2017 15:42:00
    В разделе on-error установите глобальную переменную для отправки результата. В запланированном скрипте повторно отправьте письмо, если это необходимо. Вы также можете использовать эту переменную как условие в конструкции :do { } while=( ); чтобы эффективно отправлять письмо.
     
     
     
    Def
    Guest
    #4
    0
    16.03.2017 16:00:00
    Спасибо за быстрый ответ. Я не совсем понимаю, что вы имеете в виду. Как я могу заполнить глобальную переменную результатом отправки письма (успешно оно отправлено или нет)? Если я пытаюсь так:  
    :global RES  
    :set RES [/tool e-mail send to="..." body="..." subject="..."]
    переменная RES остаётся пустой после этого.
     
     
     
    BartoszP
    Guest
    #5
    0
    16.03.2017 20:08:00
    Почти вот так {
     :local RES 1;
     :do {
        :do { ... отправить письмо ... } on-error={ :log info "!Ошибка при отправке письма"; :set RES 0; }
     } while( RES = 0 )
    }
     
     
     
    Def
    Guest
    #6
    0
    17.03.2017 07:14:00
    Спасибо. Я уже пробовал что-то похожее, но не работает. Как написал Martin S. выше про 23q: сам e-mail инструмент в CLI ошибки не возвращает и работает в фоне. on-error — не решение для e-mail инструмента.

    Тем не менее, я попробовал твое предложение вот так:
    {
    :local RES 1;
    :do {
    :do {
    :log info "Отправляем письмо...";
    /tool e-mail send ... ;
    :log info "Письмо отправлено.";
    } on-error={
    :log info "!Ошибка при отправке письма";
    :set RES 0;
    }
    } while (RES = 0)
    :log info "Завершено.";
    }

    И вот что выводит лог:

    Есть ли какой-нибудь другой способ обработать ошибки при отправке почты?
     
     
     
    krisjanis
    Guest
    #7
    0
    17.03.2017 09:18:00
    Еще один способ проверить, были ли проблемы с отправкой письма — это посмотреть значение «last-status». Я иногда использую это в скриптах, чтобы проверить, был ли последний попытка отправки успешной или нет.  
    [admin@stationDude] > :global mailStatus [/tool e-mail get last-status]
    [admin@stationDude] > :put $mailStatus
    succeeded
     
     
     
    Def
    Guest
    #8
    0
    17.03.2017 10:42:00
    Большое спасибо... это почти идеально подходит для цели! Думаю, будет отлично работать в большинстве обычных случаев. Но, на мой взгляд, в некоторых особых ситуациях этот подход подведёт. Я сделал такой скрипт:

    :local attempts 0;  
    do {  
    :set attempts ($attempts+1);  
    :if ($attempts > 1) do {:log info ("ERROR - статус последнего письма: ".[/tool e-mail get last-status];); :delay 2s;}  
    /tool e-mail send ... ;  
    do {:delay 200ms;} while ([/tool e-mail get last-status] = "in-progress")
    } while ($attempts < 5 and [/tool e-mail get last-status] != "succeeded")

    То есть скрипт пытается отправлять письмо заново каждые 2 секунды, если последний статус не “succeeded”. Но представим, что одна отправка письма с большим вложением ещё в процессе и занимает много времени (last-status = ‘in-progress’). Теперь представим, что в этот момент отправляется другое, короткое письмо. Если второе письмо ушло успешно, last-status обновится на ‘succeeded’, и первый скрипт прекратит работу — он уже не проверит, удалось ли отправить первое письмо или нет. А если первое письмо упадёт с ошибкой, оно не будет отправлено заново. Это так?
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры