7 заметок с тегом

почта

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

Обновление сервера

Итак, попало ко мне в руки хорошее «железо», что стало неплохим поводом обновить свой сервер. Так как конфигурация слишком сильно отличалась от прежней, то систему тоже пришлось ставить заново. Поначалу не могу понять почему установка проходит нормально, а сама система после этого не грузится. Потом припомнил, что Linux с картами Intel HD Graphics так и не научился нормально работать. Что поделать, пришлось отключать в BIOS встроенную видеокарту и ставить внешнюю. Плохо то, что эта внешняя видеокарта предназначалась для установки в компьютер жены. Старое «железо» из сервера тоже должно было пойти на апгрейд ее компьютера.
Увы, но на работе тоже было много работы, поэтому апгрейд двух систем несколько затянулся. Затем пришлось устранять ошибки в работе веб-сервера, ибо я заодно захотел поменять некоторые настройки. Сейчас его работоспособность почти полностью восстановлена за исключением двух субдоменов: «зеркала» обновлений NOD32 и облака. Последнее из них меня волнует меньше всего, доступ к нужным файлам я могу получить и другими способами. А вот «зеркало»... На него слишком много завязано. Работа над ним пока что ведется. Написал разработчику, описал проблему, пока что жду от него ответа.
Также выяснилось, что dovecot не совсем корректно работает с wildcard-сертификатами. Если быть точней, то мне удалось настроить почти все нужные почтовые клиенты (веб-интерфейс, Outlook на телефоне), кроме Thunderbird, установленного на домашнем компьютере. При попытке просмотреть почту с его помощью dovecot ругается на сертификат. Проблема, как оказалось, не новая, но рабочего решения её пока не нашел.
Установил пока что другую видеокарту в компьютер жены, но она оказалась с «битой» памятью, что приводило к периодическим перезагрузкам. Интересно, сможет сервер работать без видеокарты вообще? Пока что пара моих попыток заставить его работать в таком режиме не увенчались успехом — все время «ругался» спикером. Подозреваю, что придется покупать новую, хоть какую-нибудь. Главное, чтобы присутствовала в системе.

Китайская «Почта России»

И, вроде бы, в последнее время заказы приходили недели за две, неважно откуда где они были расположены: Китай, Великобритания, США, Канада. Но сейчас что-то сломалось...

  • 07.06.2018 — сообщение от Aliexpress: Платёж совершён
  • 11.06.2018 — сообщение от Aliexpress: Ваш заказ № такой-то был отправлен
  • 17.06.2018 — сообщение от Почты России: Принято в почтовом отделении
  • 29.06.2018 — сообщение от Почты России: Ожидает отправки из Китая

То бишь, насколько я понял, продавец взял на почте номер трека для отслеживания и через 10 дней принес его на почту для отправки, где заказ успешно находится до сих пор. Учитывая скорость доставки, мне кажется, что защита покупателя сработает быстрей и продавцу придется вернуть деньги. Прошел уже практически месяц, а посылка из Китая так и не выбралась. Остается еще чуть больше месяца до срабатывания защиты.

3 июля   доставка   заказ   китай   посылка   почта   скорость

Выполнение внешних скриптов в Sieve

Понадобилось недавно каким-то образом запускать внешний скрипт по приходу определенного письма. Начал поиски как это сделать. В Postfix это можно сделать, используя файл aliases, но мне этот способ не подходил, потому что он подразумевает приход письма на определенный почтовый адрес. С Dovecot сильно не разбирался, но вот информацию по Sieve нашел. Немного времени спустя у меня был наполовину рабочий вариант. Наполовину потому, что выполняемая во внешнем скрипте команда напрочь отказалась принимать отправляемые ей данные. Пришлось немного подправить скрипт в самом Sieve, чтобы получить желаемый результат.
Все оказалось очень просто. Для начала нужно включить доступ к плагину vnd.dovecot.execute. Для этого открываем файл с настройками Sieve /etc/dovecot/conf.d/90-sieve.conf и вносим следующие изменения:

plugin {
  sieve_extensions = +vnd.dovecot.execute
  sieve_plugins = sieve_extprograms
  sieve_execute_bin_dir = /etc/dovecot/sieve/execute
}

Все остальные параметры нам не нужны.
В первой строчке включаем доступ к плагину для пользователей. Можно использовать параметр sieve_global_extensions, в таком случае плагин будет работать глобально. Но глобальный скрипт работает ТОЛЬКО если у пользователя нет своего файла скрипта Sieve. Пользователей на моем сервере очень мало, поэтому такой вариант мне не подходит.
Во второй строке мы разрешаем использование плагинов как таковых.
И, наконец, в третьей строке указывает папку, в которой будут находиться эти самые внешние скрипты. Доступ к этой папке для Dovecot, конечно, нужно обеспечить. Подозреваю, что папку можно и не указывать, а в скрипте Sieve просто указать полный путь к запускаемой программе, но проверять лень.
Теперь остается только написать правило обработки входящих писем. Что-то вроде такого:

# rule:[Test rule]
if allof (header :contains "from" "test@example.com", header :contains "subject" "Prikaz 66")
{
        execute "test.sh";
	fileinto "Trash";
	stop;
}

Получив письмо от отправителя test@example.com с темой «Prikaz 66» Sieve запустит на выполнение скрипт /etc/dovecot/sieve/execute/test.sh, затем удалит письмо в корзину и завершит обработку писем.
Знаю, что информации по этой теме в интернете достаточно. Но большая часть из нее, как водится, на английском и содержит много воды. Хотелось сделать небольшую выдержку на более привычном русском языке.

Выходной лоток для HP M1132

Так как делать особо нечего, всплыла у меня в голове мысль о том, что стоит поискать выходной лоток для моей МФУ-шки. Я бы сказал, «вовремя» она всплыла, с учетом того, что принтер у меня находится не первый год. Начал искать у себя в городе — нет. В других городах ценник колеблется от 1200 до 1600 рублей. Я когда увидел, чуть глаза на лоб не полезли. Где еще искать? Конечно, у китайцев. А вот у них ценник оказался более адекватным, даже если добавить за доставку — около 350 рублей. Разместил заказ и приготовился ждать долго. Это был поздний вечер. Продавец оказался очень расторопным и буквально на следующий день в почте увидел несколько сообщений: заказ отправлен, трек для отслеживания автоматически добавился в программу Почты России. Последнее немного удивило — оказалось, что треки автоматически добавляются в приложение, когда обнаруживают совпадение номера мобильного телефона.

2018   hp   m1132   заказ   китай   лоток   почта

Поиск лекарств в мессенджерах

Возникла некоторое время назад у меня одна идея, которая заключается в том, чтобы создать робота, который мог бы отправлять пользователям в ответ на запрос информацию о том в какой аптеке, по какой цене есть искомое лекарство. Или предлагал его заказать в случае отсутствия. Рассказал об этой идее своему лучшему другу, который работает в этой сети аптек, получил устное согласие. На какое-то время эта идея «затухла». Изначально планировалось, что она будет работать в Telegram, где есть возможность создать бота, который бы отвечал на запросы. Чуть позже мысль перекинулась на обычную электронную почту, где несколько проще, на мой взгляд, отследить и отладить ошибки запросов.
Например, пользователь отправляет письмо с названием препарата, который ему необходим. Или использует для этого тот же Telegram. Спустя некоторое время, необходимое для выборки данных из базы, он получает ответ: либо на e-mail отправителя запроса, либо на ID пользователя Telegram. На мой взгляд, очень неплохая идея, реализация которой может принести достаточно хороший доход для меня. Тем более, если реализовать это не в одном мессенджере.
Пока что все, что требуется — понять, какой формат базы использовать. Так как основная база «весит» более 60 Гб в формате MS SQL, то это либо будут запросы к базе через DSN, либо база будет периодически копироваться в формат MySQL, потому что основной сервер работает на базе Linux, а запросы явно будут идти через него. К тому же, насколько я заметил, Linux намного быстрее работает с файлами, чем Windows.

2017   email   linux   telegram   windows   запрос   идея   мессенджер   почта

Вирусы в почте. Конец тестирования

Прошел почти месяц с тех пор, как научил ClamAV искать вирусы в архивах. За это время было найдено и обезврежено около двух десятков писем с троянами, шифровальщиками и прочей пакостью. Так как антивирус не только удаляет эти письма, но и складывает копии в отдельную папку, то я имею возможность позднее их просмотреть. По большей части это были vbs-скрипты. Попадались также wsf- и даже exe-файлы. Все были повторно проверены Nod32 и все были признаны вирусами, не выжил никто. Среди прочих было одно письмо, глядя на которое даже я засомневался вредное ли оно — настолько правдоподобно все было написано. Во вложениях была некая инструкция по установке сертификата, сам сертификат и запароленный архив, в котором лежал текстовый файл. Почитал инструкцию. Сомнения развеялись сразу после того, как увидел что нужно зайти в «тонкие» настройки Firefox и изменить версию TLS с 3 на 1. Инструкция описывала подобные настройки для всех браузеров. И ведь не лень кому-то было ее писать! :-)
Посмотрел также на сертификат. Издателем оказался некий товарищ Никулин, работающий в фирме IBM. Если бы сертификат был подписан любым удостоверяющим центром — было бы интересней. А так оказалось, что сертификат самоподписанный.

2017   clamav   вирус   почта

Почта не ходит дальше 500 миль

В связи с обновлением сервера вспомнилась мне тут эта история, которую я читал лет 20, наверное, назад. Но «ремонт» почтового сервера мне живо напомнил её. Прошу прощение за оформление, просто скопипастил, форматировать было лень . Итак, расслабляемся...

Рассказ про пятисотмильную электронную почту
From **@.* Fri Nov 29 18:00:49 2002
Date: Sun, 24 Nov 2002 21:03:02 -0500 (EST)
From: Trey Harris
To: **-***@.*
Subject: The case of the 500-mile email (was RE: [SAGE] Favorite impossible
task?)

Я хочу рассказать историю службы техподдержки, которая может показаться невероятной далеким от этой работы людям. Но мне хочется изложить ее широкой аудитории — хотя бы потому, что это прекрасная рассказка под выпивку в коллективе коллег. Кое-что слегка приукрашено, но это — для красоты рассказа, все важные детали сохранены.

Несколько лет назад я работал в службе технической поддержки электронной почты университетского кампуса. Мне позвонил заведующий кафедрой статистики.

«У нас проблема с отправкой почты с кафедры»
Я: «В чем проблема?»

«Мы не можем послать электронную почту больше чем на 500 миль»

Я роняю чашку с кофе. «Повторите, пожалуйста?»

«Мы не можем отправить письмо адресатам, находящимся далее 500 миль отсюда», повторяет завкафедрой. «Точнее, 520. Но не дальше».

Я пытаюсь собраться с мыслями. Крыша начинает медленно меня покидать, но нельзя позволить крыше уйти в разговоре с завкафедрой. Даже завкафедрой статистики. «Хммм... Понимаете, принцип доставки электронной почты не зависит от расстояния. Почему Вы думаете, что не можете отправлять почту далее 500 миль?»

«Я не думаю, я знаю» — довольно жестким тоном заявляет завкафедрой.
«Когда мы впервые это заметили, несколько дней назад...»
«Вы ждали несколько ДНЕЙ?» — перебиваю я уже слегка дрожащим голосом — «и вы обходились без почты?»
«Нет. Мы могли отправлять письма, но...».
«Но не далее 500 миль, сэр? Но почему же Вы не позвонили раньше?»
«Ну, у нас не было достаточного количества данных до сегодняшнего дня».
Ну да. Кафедра статистики, как-никак. О Господи...
«Ну, так или иначе — я попросил наших геостатистиков разобраться...»

Так. Геостатистики.

«...и у них получилась карта, показывающая расстояние, на которое мы можем отсылать почту. Чуть больше 500 миль. На некоторые адреса, находящиеся ближе, мы тоже не можем отправить почту с первой попытки — но дальше 500 миль мы не можем отправить ничего вообще».

«Я понял, сэр». Крыша-таки решила меня оставить. «Когда это началось? Вы сказали — несколько дней назад. Вы перенастраивали Ваши сервера в последнее время?»

«Да, приходили ребята от производителя, пропатчили сервер и перезагрузили его. Но я специально у них спросил — они говорят, что почты это никоим образом не коснулось».

«Хорошо, давайте я посмотрю, что присходит, и перезвоню Вам» — ответил я, искренне надеясь, что так не шутят даже на Первое Апреля — а сегодня далеко не Первое Апреля. Хотелось догадаться, кто из моих знакомых мог устроить подобное представление.

Нууу... Для начала я залогинился на сервер их кафедры и отправил несколько пробных писем. Все это происходило в Северной Каролине, и все письма моментально вернулись ко мне в ящик. Ричмонд, Атланта, Вашингтон — сработало. Принстон (400 миль) — сработало.

Далее я попробовал послать письмо в Мемфис (600 миль). Отлуп.
Бостон, отлуп. Детройт, отлуп. Я открыл адресную книгу и начал пытаться сузить круги. Нью-Йорк (420 миль) — работает, Провиденс (580 миль) — отлуп.

У меня появились сомнения в собственной вменяемости. Я решил попробовать отправить письмо своему другу, живущему в Северной Каролине, но работающему с провайдером в Сиэттле.
Благодарю Тебя, Господи. Отлуп. Если бы оказалось, что прохождение писем зависит от того, где находится человек, их получающий — я бы сам, по собственной инициативе и с гордо поднятой головой пошел бы сдаваться санитарам.

Поняв, наконец, что завкафедрой не бредит, я решил посмотреть на sendmail.cf. Вполне нормальный sendmail.cf. Знакомый даже.

Я сравнил его diff’ом со стандартным sendmail.cf у меня на диске. Он не изменялся. Это был ровно тот же sendmail.cf, который я делал собственноручно.
Но опцию «FAIL_MAIL_OVER_500_MILES» я не включал, это точно.
Каюк. Ну что еще попробовать? telnet по 25-му порту на сервер этой гребаной кафедры.
Сервер радостно отвечает, как ему и положено — blah-blah-blah, я, говорит, SunOS.

Стоп-стоп-стоп... SunOS sendmail? Sun тогда поставлял со своей операционкой sendmail 5, хотя все нормальные люди уже работали с sendmail 8.
Поскольку я — все-таки неплохой администратор, почта у меня ходила под sendmail 8. Ну и опять-таки — поскольку я — человек, приученный к порядку, я переписал sendmail.cf с нормальными, понятными именами переменных и опций. Что с переменными и опциями делал sendmail 5, вы должны помнить.

Так-так-так... Картинка собиралась. Мне снова захотелось кофе.
Ребятки от Sun пропатчили операционку, но sendmail, в общем-то, тоже ее часть. Они удачно закрыли дыры, но sendmail снова стал 5, а не 8. Но в одном они были правы — sendmail.cf действительно никто не тронул. А какая разница, для восьмой версии он или для пятой?

Ну, короче говоря. Пятый (по крайней мере, в варианте Sun’а) — нормально отрабатывал sendmail.cf от восьмого. Рулсеты-то не изменились.
Но вот опции настройки, такие неприлично длинные — он считал чуть ли не комментариями. Клал на них. А откомпилирован он был без настроек по умолчанию.
И, как честный человек, не найдя чего-то в sendmail.cf, он устанавливал это в 0.

Одна из успешно установленных в ноль настроек — таймаут для соединения с удаленным SMTP — сервером. Поигравшись с этим сервером, я понял, что «ноль» по его мнению — это около трех миллисекунд.

Так. Ага...
Сетка наша уже в то время была на коммутаторах, и задержек практически не имела.
Задержки снаружи — это, в общем. Было понятно.

Ага. Скорость распространения электромагнитной волны.

ОООПС....
Умножаем время на скорость света, и получаем... и получаем...
558.84719

Пятьсот пятьдесят восемь миль.

2016   500   sendmail   басня   история   миля   почта   сервер   юмор