Перейти к основному содержимому

Верстка писем с использованием React

· 3 мин. чтения

React Email

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

Для надо знать нюансы того как почтовые клиенты возможности CSS и HTML. Чтобы не выяснять это на практике, можно пользоваться сайтом Can I email, где можно посмотреть поддержку различных тегов и атрибутов в различных почтовых клиентах. Вот, например, Gmail отбрасывает аттрибут style целиком, если встречает в нем цвет заданный как rgb.

В итоге даже в 2025 году верстка писем сводится к использованию таблиц и аттрибутов align, valign, bgcolor и т.д.

Ну а еще отправив письмо, вы не можете его поправить, как страницу на сайте.

Поэтому я оценил библиотеку React Email, которая позволяет создавать письма с использованием React. Она предоставляет компоненты, которые генерируют HTML и CSS, корректно отображающиеся во всех почтовых клиентах. Письмо можно посмотреть в браузере и отправить на почту. Да, под капотом все равно используются таблицы, но зато вам не придется их писать руками, а можно использовать более высокоуровневые абстракции.

Сохранение IP-адреса клиента с при развертывании приложения за балансировщиком нагрузки

· 8 мин. чтения

Когда балансировщик нагрузки или прокси-сервер не могут сохранить исходный IP-адрес клиента, он может переписать IP-адрес или использовать свой собственный IP-адрес для целей маршрутизации. В этом сценарии широко используются обычные методы, такие как вставка исходного IP-адреса в заголовки запросов (например, X-Forwarded-For) или использование протокола прокси, чтобы гарантировать, что серверные службы по-прежнему имеют доступ к этой информации. Application Load Balancer работает на 7 уровне и используют HTTP-заголовок X-Forwarded-For для передачи IP-адреса клиента серверу. Но что делать если вы работаете на уровне 3 и не можете использовать HTTP-заголовки? В этом случае нужно учитывать, что Network Load Balancer (NLB) и Application Load Balancer (ALB) по-разному обрабатывают L3 трафик. Об этих различиях и пойдет речь в этой статье.

В качестве примера мы рассмотрим nginx. Мы настроим его на прием запросов с NLB и ALB в L3 и L7 вариантах. Все примеры развертывания описаны в Terraform рецепте и вы сможете легко самостоятельно проверить их.

Как сделать форму подписки на email с помощью Yandex Cloud Postbox и SmartCaptcha

· 6 мин. чтения

banner Я уже полтора года пишу в этот standalone блог. До этого я писал на Medium. И вот там была классная фича, сделать которую тут у меня все не доходили руки. Это форма подписки на email. Я хотел сделать так, чтобы читатели могли подписаться на новые статьи и получать на почту уведомления. Но я не хотел использовать Mailchimp или подобные сервисы. Я хотел сделать все, используя Yandex Cloud. И вот наконец-то я это сделал. В этой статье я расскажу, как я это сделал.

Кстати, справа вы видите именно эту форму подписки. Если вы хотите подписаться на новые статьи, введите свой email и нажмите кнопку "Подписаться". А теперь давайте разберемся, как это работает.

Интеграция Traefik с Yandex Cloud при помощи провайдера HTTP конфигурации

· 2 мин. чтения

У Application Load Balancer в Yandex Cloud есть крутая фича — интеграция с Certificate Manager. Это позволяет автоматически получать SSL сертификаты для ваших доменов, а также обновлять их. Но иногда ALB может быть слишком дорогим. В таком случае можно использовать Traefik в качестве reverse proxy и WAF. В этой статье я покажу как настроить Traefik в Yandex Cloud и добавить интеграцию с Certificate Manager.

Как настроить Sendmail или Postfix для работы с Postbox

· 5 мин. чтения

Чтобы отправлять почту через Postbox, нужно настроить почтовый сервер. В этой статье я расскажу как настроить Sendmail или Postfix на Ubuntu 24.04 для отправки почты через Postbox по 587 порту.

Начнем с создания виртуальной машины на Ubuntu 24.04. Имя укажем demo, а имя пользователя yc-user. Они не обязательно должны именно такими, но так проще будет ориентироваться в статье, понимая откуда взялись эти значения.

Traefik как WAF

· 5 мин. чтения

WAF (Web Application Firewall) — это инструмент, который защищает веб-приложения от различных видов атак, анализируя и фильтруя HTTP-запросы. Вот основные преимущества и случаи, когда WAF может быть полезен:

Отдельным плюсом является возможность использования WAF без изменения кода приложения. WAF работает как промежуточное звено между пользователем и сервером, поэтому разработчикам не нужно вносить изменения в код приложения. Это экономит время и снижает вероятность ошибок.

Однако, библиотека про которую пойдет речь в этой статье, Coraza, также может быть использована внутри приложения.

Autoincrement в YDB. Часть 2

· 5 мин. чтения

В прошлом посте говорил, что в задачах для которых создавалась YDB использование автоинкремента нецелесообразно. Так как он может стать бутылочным горлышком при вставке большого количества данных.

Однако, с развитием YDB, разработчикам стало понятно, что serial типы данных востребованы пользователями. И в версии 24.3 они были добавлены.

Доставка Lockbox секретов при помощи Docker-compose init container

· 3 мин. чтения

В прошлом посте я рассказал, как доставить на виртуальную машину секреты из Lockbox при помощи скрипта в user-data. В этом посте я расскажу, как сделать это при помощи Docker-compose init container. Это решение можно использовать вместе с Container Optimized Solution, чтобы доставить секреты в контейнеры. Но это не обязательное условие, вы можете использовать его в любом проекте, где используется Docker-compose.