3 горизонтальные линии, бургер
3 горизонтальные линии, бургер
3 горизонтальные линии, бургер
3 горизонтальные линии, бургер

3 горизонтальные линии, бургер
Удалить все
ЗАГРУЗКА ...

Содержание



    Перенос почтового сервера между хостингами и решение проблемы отправки писем

    Часы
    27.03.2026
    /
    Часы
    12.04.2026
    /
    Часы
    5 минут
    Глазик
    125
    Сердечки
    0
    Соединённые точки
    0
    Соединённые точки
    0
    Соединённые точки
    0

    С чего всё началось

    Всё началось с того, что я решил в очередной раз немного переделать главную страницу сайта. Я уже почти всё сделал, осталось только вставить форму обратной связи в низ страницы, что я успешно и сделал. Проблема обнаружилась тогда, когда я попытался отправить тестовое письмо. У меня ничего не получилось. Выскочила такая ошибка:
    Проблема была в том, что не удавалось получить локальный файл сертификата SSL: CERTIFICATE_VERIFY_FAILED certificate verify failed: unable to get local issuer certificate (_ssl.c:1002).
    Это было примерно месяца 4 назад. Тогда моим решением было просто выпилить форму обратной связи, ибо это единственный элемент на сайте, который требовал почтовый сервер.
    Почему я сразу не решил эту проблему? Наверное из-за того, что это одна из тех проблем, которые не стоят своего времени, чтобы быть решёнными. В конце-концов, никто не пользовался моей формой обратной связи, поэтому было решено не заморачиваться и просто убрать неработающий сегмент.
    Но вот сейчас это не проблема, которую можно игнорировать. Учитывая тот факт, что отправка/получение писем является обязательной частью для:
    1. Регистрации новых пользователей
    2. Подтверждение совершенных покупок
    3. Отправка почтовой рассылки всем подписавшимся на неё
    4. И конечно же, отправки форм обратной связи.
    Это всё теперь у меня есть на сайте, и соответственно, почта должна быть и должна быть в первую очередь рабочей, а во вторую профессиональной.

    Решение проблемы

    Поэтому, проблему потребовалось решить. И как оно всегда бывает, я зашёл не с того конца, а именно, решил поменять провайдера почты с beget.ru на hoster.by. Тогда моя логика была проста, раз с локального компьютера я могу отправлять письма, а с сервера нет, кодовая база сайта одна и та же, что там, что тут. Значит, виноват сам провайдер и нужно его поменять.
    Но это в корне не верно - провайдер не причём. Причём как раз список установленных пакетов в виртуальном окружении моего сайта, вернее отсутствие одного из них - pip-system-certs. И чтобы решить данную проблему, нужно только его установить:
    pip install pip-system-certs
    Ответ лежал на поверхности, и кстати, ни один ИИ не указал правильное решение, которое бы мне помогло. Помог вот этот человек, со своим ответом, за что ему и шлю благодарность.

    Про что будет статья

    Но так как перенос почты был уже сделан, я подумал, а почему бы не копнуть глубже и разобраться в теме полностью. Дальше, я опишу процесс переноса почты с одного провайдера к другому. Единственное, что у тебя должно быть, так это сам домен, иметь почту на нём и он должен быть твоим - очевидно.
    Делать я это буду на примере регистратора доменов и хостинг провайдера beget.ru. На нем находится мой домен, сайт, база данных и почта. И будем переносить почту на уже на хостинг hoster.by.
    Я не буду вдаваться в детали того, что и куда нажимать, я расскажу основные принципы при переносе почты с одного провайдера на другой.

    Процесс переноса корпоративной почты

    Есть много разных специализированных поставщиков такой услуги. Например, Google Workspace или Mail.com. Которые заточены именно для создания корпоративного почтового ящика, управлением списками рассылок и многое другого.
    Также, есть так называемые ESP-провайдеры. Которые специализируются на массовой рассылке писем. Данную деятельность ещё называют Email-маркетинг. И если корпоративная почта создаётся в большей степени для бренда, то ESP-провайдеры для массовой рассылки. В моём случае я создаю именно что корпоративную почту с привязкой к домену.
    Да, я понимаю, что для моих целей (отправка чеков, писем благодарностей за донаты, подтверждения операций оплаты) необходимо использовать именно ESP-провайдеры, но пока посетителей у меня мало, а доходов ещё меньше, корпоративной почты будет достаточно. И когда время настанет, я дополню эту статью, ещё и главой с переносом корпоративной почты на ESP-провайдера ;)

    Настройка DNS-записей

    Но и у каждого хостинг провайдера имеется такая услуга, которая обычно либо предоставляется бесплатно, либо дешевле чем у специализированных сервисов.
    Допустим у тебя уже есть домен, открой DNS редактор для этого домена. Так, мой домен зарегистрирован на beget и будет выглядеть вот так:
    И ты хочешь перенести ( или создать ) почту на другом хостинге, например на hoster.by, тебе нужно будет найти вкладку настроек записей домена в разделе почты. Так, на примере hoster.by, она будет выглядеть вот так:
    Она, эта страница, будет содержать соответствующие записи MX, DKIM, SPF и CNAME.
    CNAMEПозволяет привязать поддомен к другому домену. То есть, если запрос будет отправлен на autodiscover.timthewebmaster.com, то он будет перенаправлен на autodiscover.hoster.by
    MXУказывается адрес почтового сервера, на который будут приходить, или с которого будут отправлять письма.
    DKIMХранит специальный ключ для подтверждения авторства письма, то есть отправил ли ты его или это письмо подделал и отправил кто-то другой.
    SPFЭто "Белый лист", с которого ты, как владелец домена, разрешаешь отправлять письма. Одна из мер безопасности.
    TXTОбщая запись, которая используется в основном для подтверждения прав собственности
    Тип рессурсной записиОписание
    Теперь нужно перенести все сгенерированные записи с hoster.by на beget.ru.
    У тебя может возникнуть вопрос, но я не могу создавать записи SPF и DKIM на beget, или на другом хостинге. Что в таком случае делать? Можно использовать универсальную запись TXT, которую нужно будет создать на отдельном поддомене своего сайта.
    То есть, если смотреть на мой пример, просто создай поддомен mail._domainkey.timthewebmaster.com и добавь туда запись TXT в формате, который тебе предоставил твой провайдер.
    Для SPF, можно не создавать отдельного поддомена. Нужно её сделать на основном домене, тоже в записи TXT.
    Для того чтобы записи вступили в силу, потребуется от 1 до 15 минут. Наберись терпения мой друг.

    Настройка Django-приложения

    Если твой сайт работает на какой-нибудь популярной CMS, например WordPress, то предыдущей главы должно хватить для работы твоего почтового клиента. Но если у тебя самописный сайт, и он на Django, то придётся ещё настроить settings.py для корректной отправки писем через встроенные утилиты фреймворка.
    CMS ( Content Management System ) - это система, "движок сайта" которая позволяет управлять контентом на сайте из специальной админки и даже настраивать его без вмешательства на сторону сервера.
    В settings.py, нам потребуется настроить следующие глобальные переменные:
    1. EMAIL_USE_SSL и EMAIL_USE_TLS одно из них должно быть либо True, либо False
    2. EMAIL_HOST - адрес почтового сервера
    3. EMAIL_PORT - обычно для SMTP протокола это 465 порт
    4. EMAIL_HOST_USER - полное имя твоего почтового ящика
    5. EMAIL_HOST_PASSWORD - пароль от почтового ящика
    Вот так может выглядеть настройки почты подключённой через SMTP, для hoster.by:
    EMAIL_USE_SSL = True EMAIL_USE_TLS = False EMAIL_HOST = "smtp.hoster.by" EMAIL_PORT = 465 EMAIL_HOST_USER = "tima-chuduk@timthewebmaster.com" EMAIL_HOST_PASSWORD = "YouSTrangePassword11"
    SMTP (Simple Mail Transfer Protocol) — это стандартный сетевой протокол, предназначенный исключительно для отправки электронной почты между серверами и от клиента к серверу.
    И разумеется не пиши пароль напрямую в settings.py, а размести этот пароль в переменную окружения или бери из другого файла.
    После этого, перезапусти сервер и отправляй свои письма кому захочешь. Опять, пример для Django сайтов используя встроенную утилиту в Django для отправки почты:
    from django.core.mail import send_mail send_mail( subject="About this article", message="This is nice article BTW", from_email=EMAIL_HOST_USER, recipient_list=["people1@gmail.com", "people2@gmail.com"] )

    Выводы или то чем всё закончилось

    На этом, весь переход закончен. Это не слишком сложно, купить домен, настроить почту на одном провайдере и скопировать ресурсные записи с одного DNS-сервера на другой.
    Конечно, не забываем про дополнительную настройку файла settings.py твоего Django-приложения, если конечно оно на Django.
    Есть ресурсные записи типа MX, CNAME, DKIM, SPF и TXT, и все они настраиваются обычным копированием между серверами. Плюс, даже если какую то запись и нельзя создать, её всегда можно заменить на универсальную TXT запись.
    Вопрос в том, нужно ли это тебе всё делать. Как показала моя практика, не нужно от слова совсем. Я поспешил с выводами и заплатил за это, буквально.
    Возвращаясь к тому, чем мой переход закончился. Он закончился ровно тем, чем и началась данная статья с ошибки SSL: CERTIFICATE_VERIFY_FAILED. Когда я отправил во-второй раз тестовое письмо, оно выдало ту же ошибку, что и до этого, но на почте beget. И тут до меня дошло, что что-то не так с моим приложением.
    И как это было уже описано в решении проблемы с верификацией сертификата, я просто установил дополнительную библиотеку в виртуальное окружение сайта. ╯︿╰

    Не забудь поделиться, лайкнуть и оставить комментарий)

    Комментарии

    (0)

    captcha
    Отправить
    ЗАГРУЗКА ...
    Сейчас тут пусто. Буть первым (o゚v゚)ノ

    Другое

    Похожие статьи


    Как развернуть Django сайт на бегет хостинг (или VPS). Полная инструкция.

    Часы
    12.05.2024
    /
    Часы
    11.03.2026
    Глазик
    9024
    Сердечки
    3
    Соединённые точки
    1
    Соединённые точки
    2
    Соединённые точки
    0
    Это статья-инструкция о том как можно разместить django-сайт на beget. Показываю два способа (деплой на хостинге и деплой на VPS). Плюс, как настроить и подключить базу данных, почту, статику и …

    Как загрузить django сайт на хостинг от reg.ru

    Часы
    16.03.2025
    /
    Часы
    15.04.2026
    Глазик
    5815
    Сердечки
    0
    Соединённые точки
    0
    Соединённые точки
    2
    Соединённые точки
    0
    Как запустить django сайт на reg.ru с настройкай базы данных. Настроим переадресацию на HTTPS, на nginx, gunicorn, и работа с DNS

    Разворачиваем BTCPay сервер на VPS

    Часы
    05.03.2026
    /
    Часы
    12.04.2026
    Глазик
    273
    Сердечки
    0
    Соединённые точки
    0
    Соединённые точки
    0
    Соединённые точки
    0
    Опишу процесс разворачивания BTCPay сервера для принятия платежей через крипту. По шагово: Bitcoin Core -> .NET SDK 8.0 -> NBXplorer -> BTCPay -> Nginx ->+ Tor как бонус. А так …