Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
24 Март 2023

MailHog — отладка почтового функционала в среде разработки. Установка и настройка на CentOs Bitrix_env.

При работе в тестовой или локальной среде как правило отключат работу с почтой — иначе возможна рассылка реальным клиентам всякой информации с тестового или локального сервера, что конечно же недопустимо.
Тем не менее отладку функционала работающего с почтой никто не отменял — как же быть?

Один из вариантов решений — mailhog

Сервис настраивается вместо smtp почтового сервера и всё — он ловит всю исходящую почту, для просмотра есть веб мордочка.

Для установки и настройки MailHog

Берём отсюда
https://gist.github.com/Caffe1neAdd1ct/ea28bb49baaea86c203407629b442681
установочный скрипт — запускаем.

Далее с этой же страницы берём сам скрипт запуска (я взял тот, что без авторизации — пониже который) и заменяем /etc/init.d/mailhog
Всё сервис должен работать.

Далее настраиваем веб мордочку.
Берём тут конфиг https://gist.github.com/blakethepatton/7928abb131593fd192606b681ee47b2b и вставляем в nginx (я предварительно создал сайт mailhog.mysite.loc и там уже подменил)

Всё — веб мордочка тоже должна заработать.

Далее нужно в самой системе установить mhsendmail и в конфиге php.ini указать, что при отправке почты использовать именно его.

Я ставил так


yum install go
go install github.com/mailhog/mhsendmail@latest
ln ~/go/bin/mhsendmail /usr/bin/mhsendmail
mhsendmail -h

далее идём в /etc/php.d/bitrixenv.ini
и правим
sendmail_path = mhsendmail

ребутим аппач — должно работать

у меня сразу не взлетело т.к. в настройках сайта sendmail_path был переопределён — так что если что смотрите конфиги nginx и httpd на предмет sendmail_path

после того как в php.ini добавили sendmail_path = mhsendmail можно проверить отправку письма с командной строки https://github.com/mailhog/mhsendmail


> mhsendmail test@mailhog.local <
To: Test
Subject: Test message

Some content!
EOF

рубрики: Полезности, Программирование | Комментарии (0)

8 Ноябрь 2022

Изучение технической документации Symphony на английском

Очень часто в программировании профи отсылают к документации именно на английском языке, как к первоисточнику.
Я не очень сильно в английском (школа + институт был немецкий) поэтому частенько ленюсь напрягать извилины и читаю на русском.

Сегодня словил яркий пример почему всё таки английский — благо есть более опытный коллега, направил в нужное русло.

Итак ссылки и скриншоты в студию
Русская дока
https://symfony.ru/doc/current/security/impersonating_user.html
Английская дока
https://symfony.com/doc/current/security/impersonating_user.html

Вот этого фрагмента в русской доке попросту нет!
В решении поставленной по проекту задачи именно передача параметров в заголовке стала главным техническим решением.

рубрики: Полезности, Программирование, Размышления | Комментарии (0)

1 Август 2022

Activation Code PHPStorm 2022 — активация кодом (взлом vmoptions netfilter в Ubuntu)

Сначала, попробовал воспользоваться триальным месяцем для вновь созданного аккаунта — но почему-то триальные лицензий на таких аккаунтах не находились 🙁
пробовал в режиме инкогнито а так же с Tora, с аккаунтов yandex и gmail — эффект нулевой

Далее решил уже приобрести платный ключ и каждый год продлять (на 3й год сумма существенно снижается) — НО к сожалению из-за санкций к России оплатить заказ никак не получилось — даже после смены страны в настройке акканута оплата картой VISA Российских банков не проходила — PayPal у меня нет, а других вариантов оплаты на сайте не было…

Пришлось гуглить тему взлома 🙁

php storm activation key

Идём сюда https://jetbra.in/s
выбираем «живой» сервер, заходим — там качаем архив и кликаем по иконке PHPStorm (ключ активации скопируется в буфер обмена)

Далее я некоторое время помучался, т.к. у меня Ubuntu и по инструкции не «взлетало» (пользователям Windows думаю будет попроще)

Правил вручную phpstorm64.vmoptions — ожидаемого результата не было 🙁 при вводе ключа в PHPStorm получал «key is invalid»

При запуске скрипта scripts/install.sh получал

В итоге помогло решение скопировать содержимое архива прямо в пользовательскую директорию /home/alex/
Далее запуск /home/alex/scripts/install.sh отработал корректно — ввёл скопированный ключ и получил активацию на 1 год.

Чуть подробнее о моих изысканиях:
Читать полностью »

рубрики: PHP, взлом и безопасность, Полезности, Программирование | 2 комментария

13 Июль 2022

Ошибка gulp-imagemin: Couldn’t load default plugin «gifsicle»

На Ubuntu при сборке фронта gulp при минимизации изображений ругается

gulp-imagemin: Couldn’t load default plugin «gifsicle»

TypeError in plugin «gulp-imagemin»
Message:
fn is not a function
Details:

Ошибка: gulp-imagemin couldn’t load default plugin gifsicle

Решение: поочередный запуск команд в терминале ubuntu (внутри корневой директории проекта)

sudo apt-get install dh-autoreconf
sudo npm install -g gifsicle
npm install —force

Источник
https://zencod.ru/gists/error-gulp-imagemin-couldnt-load-default-plugin-gifsicle/

рубрики: Полезности, Программирование | Комментарии (0)

8 Сентябрь 2020

Отправка почты с Битрикс CMS через Яндекс

Итак, на новом проекте — интернет магазин по продаже фотообоев даже после всех настроек почты, опубликованных ранее (пост 1, пост 2) почта на GMail, полученная с сайта всё равно улетала в спам 🙁

Я попробовал отправить с этого же сайта почту скриптом через Яндекс (домен уже был привязан через pdd.yandex.ru к Яндексу, MX запись так же была настроена) — и о чудо, сообщение без проблем пришло во входящее!

Далее стандартную функцию по отправке почты Битрикса я подменил на новую (путём объявления функции custom_mail в /bitrix/php_interfaces/init.php) и вуаля — теперь вся почта отправленная с Битрикса теперь отправляется через Яндекс Почту и не падает в спам!

Ссылочка на готовое решение — функция по отправке почты Битрикс через Яндекс
Готовое решение не моё — вот исходник, но сразу скажу, что там допущены две ошибки которые я пофиксил в своём варианте.

Отдельно о моментах, которые пришлось решать попутно

* Пришлось ставить composer, в связи с чем потребовалось включить php расширение phar — решение mv /etc/php.d/20-phar.ini.disabled /etc/php.d/20-phar.ini и рестарт браузера

wget https://getcomposer.org/composer.phar
chmod +x composer.phar
Далее, что бы Composer был доступен не только из папки, но и глобально в системе перемещаем его в папку /usr/local/bin/ командой mv
mv composer.phar /usr/local/bin/composer

* Для работы скрипта использовал скрипт PHPMailer + хорошая статья по данному скрипту
* Для работы imap_mime_header_decode используемой в скрипте потребовалось установить (именно установить а не включить) расширение php_imap (на centos команда yum install php_imap отработала корректно)

рубрики: Bitrix, PHP, Программирование | Комментарии (0)

24 Январь 2020

Как значительно ускорить скорость загрузки сайта

Скорость загрузки сайта была улучшена с 7.9 секунд до 1.45 секунды!
Кому интересно — читаем 🙂

Преамбула — обратился ко мне клиент с просьбой ускорить загрузку сайта, т.к. ну уж очень медленно всё — более 7 секунд!!! на загрузку главной страницы
изначальная версия главной (для тестирования обновляем страницу со сбросом кэша браузера)
Реклама крутится — бабки ввалены, а с такой скоростью врят ли стоит чего то ловить…
Сайт — очень красивая лендинг простыня, с кучей красивой графики и всяких не менее красивых эффектов появления другой графики — в общем полный треш в плане веса страницы, со всеми вытекающими …
Причём именно для этого сайта тормознутость загрузки очень явно видна т.к. пока не прогрузится вся страничка на видимой части не всплывёт непосредственно главное содержание странички — заголовки и футболист! До этого страничка будет выглядеть пустой.



Все обычные советы — сжать и обрезать картинки, объединить и сжать css и js, поместить в конец страницы и прочие — всё это как слону дробина при таких объёмах графики на странице.
Начал изучать и нашел на хабре среди обычных один довольно интересный совет

Читать полностью »

рубрики: Bitrix, Javascript - JQuery, PHP, Лайфхак, Полезности, Программирование | Комментарии (0)

23 Январь 2020

VS Code — форматирование HTML кода в PHP файлах

Всем привет!

Собственно, в качестве среды программирования поставил себе Visual Studio Code и начал потихоньку настраивать.
Судя по отзывам — лёгкий, удобный, функциональный и главное — бесплатный!
Для старта глянул видос от ITDoctor обзор редактора и начал осваивать.

Первая проблема с которой я столкнулся это то, что редактор не форматирует html разметку в php файлах
В том же Битриксе все шаблоны создаются в *.php файлах соответственно, вся html разметка там же
Всё что нашел в рунете — а ля расширение phpfmt умеет, но нифига оно не форматирует 🙁

Решение подсказали на форуме cyberforum.ru — ветка

Расширение Format HTML in PHP справилось с поставленной задачей!

рубрики: PHP, Программирование | Комментарии (0)

8 Ноябрь 2018

PHP — как отправить файл POST запросом cURL

Собственно, задача — автоматизация процесса загрузки файла на сайты через веб-форму.
То есть на разные сайты мне нужно загрузить один и тот же файлик — захожу на сайт, выбираю нужный файл жму аплоад!
Список адресов сайтов с формой есть, файл конечно тоже — нужно автоматизировать!

Для реализации поставленной задачи решил использовать библиотеку curl, но вот с передачей файла возникла проблема — никак у меня не получалось отправить файл в форму!
Довольно долго рыл и нарыл таки рабочее решение
https://stackoverflow.com/questions/4223977/send-file-via-curl-from-form-post-in-php и оно же на другом ресурсе
https://exceptionshub.com/send-file-via-curl-from-form-post-in-php.html

Собственно, чел видимо затрахался как и я и решил передаваемые в POST данные сгенерировать самостоятельно с правильными заголовками.
Незнаю почему, но у меня в кодировке base64 ну никак не передавался, вернее передавался, но в такой кодировке и сохранялся 🙂 т.е. в закодированном виде, поэтому я несколько переделал скрипт до рабочего состояния (и увеличил кол-во передаваемых переменных для наглядности).

Получился такой код
Читать полностью »

рубрики: PHP, Полезности, Программирование | Комментарии (0)

26 Сентябрь 2018

1С 7.7 пропадает точка при выгрузке формы в xls

Волею судеб приходится заниматься всякой всячиной — одна из которых поддержка клиентов по вопросам 1С 7.7
Т.к. поиск в сети не принес мне быстрых результатов пришлось сабж решать самому.
О проблеме более детально — выводим УПД из 1С 7.7. сохраняем в xls — открываем, а там количество вместо 2,000 стоит 2000
То есть запятая, отделяющая дробную часть тупо пропадает по всему документу.

Решение такое — открываем конфигуратор, там общий модуль — в нём ищём поиском УПД891 — позиционируемся на процедуру вывода в таблицу УПД891.
Там чуть ниже находим строчку, задающую формат вывода количества в таблице
ПечКоличество = Формат(ТабДок.Количество, «Ч-15.3,»);
Тройку меняем на двойку, сохраняемся и готово!

рубрики: , Полезности, Программирование | Комментарии (0)

12 Сентябрь 2018

Быстрая анти спам защита формы обратной связи Битрикс main.feedback

Спам в форме обратной связи Битрикса main.feedback ЗАДОЛБАЛ реально!

Собственно, презентую моё бесплатное решение, внедряемое за 5 минут:
Идея — проверка на вхождение в сообщение «http» «href» и дополнительное поле — результат суммы прописью

1. Копируем стандартный компонент main.feedback из папки ./bitrix/components/bitrix/ в свою ./bitrix/components/gtalex/
2. Заменяем подключение данного компонента на свой bitrix:main.feedback на gtalex:main.feedback
3. В форму добавляем (в массиве в цифрах прописью в каждой цифре один символ английский — чтоб было труднее спарсить) (скобки >< заменил на [])

$numbers = array(«нoль», «oдин», «двa», «mри», «чеmыре», «пяmь»);
$one = $numbers[rand(0,5)];
$two = $numbers[rand(0,5)];

[strong][?=$one?] плюс [?=$two?] = (запишите цифру ответа прописью с маленькой буквы)
[input type=’text’ name=’GT_SUM’ value=’[br/]


4. В компоненте ./bitrix/components/gtalex/component.php перед строкой

if(empty($arParams["REQUIRED_FIELDS"]) || !in_array("NONE", $arParams["REQUIRED_FIELDS"]))

добавляем обработку введённых данных

...
if(($_POST["GT_SUM"]==NULL)or($_POST["GT_SUM"]=="")) {
$arResult["ERROR_MESSAGE"][] = "Введите решение примера";
}
if(in_array($_POST["GT_SUM"],$summ)) {
} else {
$arResult["ERROR_MESSAGE"][] = "Неверное решение примера! Введите правильное.";
}
if(strpos($_POST["MESSAGE"], "href")===false) {
} else {
$arResult["ERROR_MESSAGE"][] = "Гиперссылки в сообщении запрещены";
}
if(strpos($_POST["MESSAGE"], "http")===false) {
} else {
$arResult["ERROR_MESSAGE"][] = "Гиперссылки в сообщении запрещены";
}
...

рубрики: Bitrix, Полезности, Программирование | Комментарии (0)