Всем привет форумчане, уверен 80% из вас хотя бы раз пользовались почтами от Firstmail/Notletters и платили деньги за буквально воздух
Сегодня будем поднимать свой Firstmail бесплатно, из расходов только домен который стоит в год от $1
Сегодня будем поднимать свой Firstmail бесплатно, из расходов только домен который стоит в год от $1
Для абузов, ферм Steam, перепривязки и тд
Как долго поднимать? От силы 10 минут, если вы не совсем хлебушек который только сел за ПК
Учитывая что домен стоит всего $1 за год, который подойдет для Steam, окупится он у вас явно быстро)
Если говорить простыми словами, то это почти полноценный Firstmail/Notletters
Только за $1, а не за каждую почту, единственный минус это IMAP, сам по себе скрипт не поднимает IMAP сервер, но если вам нужно вы можете использовать API которое отдает письма в JSON, что конечно workaround
Но скрипт поддерживает как IMAP так и SMTP, для рассылок, в статье это не указано, так как мне это не нужно.
Если вам нужно изучите, Github скрипта
Как долго поднимать? От силы 10 минут, если вы не совсем хлебушек который только сел за ПК
Учитывая что домен стоит всего $1 за год, который подойдет для Steam, окупится он у вас явно быстро)
Если говорить простыми словами, то это почти полноценный Firstmail/Notletters
Только за $1, а не за каждую почту, единственный минус это IMAP, сам по себе скрипт не поднимает IMAP сервер, но если вам нужно вы можете использовать API которое отдает письма в JSON, что конечно workaround
Но скрипт поддерживает как IMAP так и SMTP, для рассылок, в статье это не указано, так как мне это не нужно.
Если вам нужно изучите, Github скрипта
1. Выбрать домен не сложно, просто пишем randomname + mail
Выбор регистратора в целом никак не роляет, я свои домены создавал тут -> https://www.spaceship.com/
Выбор регистратора в целом никак не роляет, я свои домены создавал тут -> https://www.spaceship.com/
Как только выбрали домен, очевидно покупать его сразу не стоит, идем в настройки аккаунта Steam и жмем сменить Email
Далее вписываем нашу рандом почту с нашим будущим доменом
Пример: randomname@randommail.space
И далее если домен не нравится Steam он напишет вам что это временная почта, если ошибки нету то можно смело регистрировать домен он будет принимать письма от Steam
Далее вписываем нашу рандом почту с нашим будущим доменом
Пример: randomname@randommail.space
И далее если домен не нравится Steam он напишет вам что это временная почта, если ошибки нету то можно смело регистрировать домен он будет принимать письма от Steam
2. Как только приобрели домен нужно сменить NS на адреса которые вам выдаст CloudFlare т.к почту мы будем хостить именно там
Идем на dash.cloudflare.com/sign-up
Заполняем форму регистрации
Заполняем форму регистрации
Далее нас спросят как мы будем использовать CloudFlare жмем кнопку "Skip"
Далее на почту придет письмо с ссылкой, жмем на нее и аккаунт готов
После этого попадем в Dashboard
Далее на почту придет письмо с ссылкой, жмем на нее и аккаунт готов
После этого попадем в Dashboard
2.1 Чтобы сменить NS идем на регистратора своего домена и ищем NS/Nameservers
Вписывать нам нужно два NS адреса которые мы получаем на CloudFlare
Жмем "Domains"
Жмем "Domains"
Жмем "Add Domain"
Теперь "Connect a domain"
Вписываем наш домен
Далее выбираем "Free Plan"
Далее CloudFlare выдаст вам 2 NS адреса которые нужно вписать в поля на сайте вашего регистратора
Отлично, NS сервера установлен
Вы также можете использовать домен ppua
Который можно получить бесплатно имея зарубежную карту с 1 UAH на балансе для проверки, домен выдают на nicua
Срок 1 год, без продлений
ВАЖНО!
Домен ppua не подходит для Steam, для работы со Steam вам все также нужен будет свой личный домен
Который можно получить бесплатно имея зарубежную карту с 1 UAH на балансе для проверки, домен выдают на nicua
Срок 1 год, без продлений
ВАЖНО!
Домен ppua не подходит для Steam, для работы со Steam вам все также нужен будет свой личный домен
1. Идем на CloudFlare
2. В раздел "Storage & databases" и в нем выбираем "D1 SQLite Database"
2. В раздел "Storage & databases" и в нем выбираем "D1 SQLite Database"
2.1 Жмем "Create Database"
2.2 Вводим любое имя нашей ДБ и жмем "Create"
Запишите данное имя, оно пригодится нам в дальнейшем
Запишите данное имя, оно пригодится нам в дальнейшем
2.3 После создания вы увидите ID вашей ДБ
Сохраняем его, где вам удобно
Сохраняем его, где вам удобно
3. В том же разделе "Storage & databases" выбираем Workers KV
Вводим любое имя и опять же копируем ID
Вводим любое имя и опять же копируем ID
1. Идем на CloudFlare
Жмем "Create Token"
Жмем "Create Token"
1.1 Выбираем "Edit Cloudflare Workers"
1.2 Листаем страницу ниже,
В пункте "Account Resources" ставим: All Accounts
А в пункте "Zone Resources" ставим: All Zones
и жмем "Continue to Summary"
В пункте "Account Resources" ставим: All Accounts
А в пункте "Zone Resources" ставим: All Zones
и жмем "Continue to Summary"
1.3 Теперь жмем "Create Token"
1.4 После этого вам выдадут Api-Токен, сохраняем его, ибо в дальнейшем его не дадут посмотреть
1. Идем на Github
Жмем "Create Fork"
Жмем "Create Fork"
2. Теперь нам нужно включить Actions для нашего форка, чтобы без скачивания Node.Js+wrangler задеплоить наш скрипт используя Github Actions.
Жмем "Actions"
Жмем "Actions"
2.1 Теперь жмем кнопку
"I understand my workflows, go ahead and enable them"
"I understand my workflows, go ahead and enable them"
3. Теперь надо настроить Wrangler.toml
Пример берите отсюда Github
Или же
Открываем редактор файлов в нашем форке
И ищем файл
worker / wrangler.toml.template
Пример берите отсюда Github
Или же
Открываем редактор файлов в нашем форке
И ищем файл
worker / wrangler.toml.template
3.1 Копируем данный файл, полностью.
Теперь идем в раздел Settings нашего форка
Далее "Secrets and variables"
Жмем "New Repository Secret"
Теперь идем в раздел Settings нашего форка
Далее "Secrets and variables"
Жмем "New Repository Secret"
3.2
BACKEND_TOML
Secret == (Содержимое .template которое мы копировали выше, см. скрин)
BACKEND_TOML
Secret == (Содержимое .template которое мы копировали выше, см. скрин)
3.3 Теперь нам нужно вписать наши данные
Домены, ID нашей D1 и прочее, более подробнее советую вам самим изучить файл что вам нужно/не нужно, все расписано детально, если возникнут вопросы вы можете спросить у Claude или же любой другой нейронки
Ниже лишь пример что настраивал я, изучите конфиг чтобы потом не деплоить кфг повторно
Домены, ID нашей D1 и прочее, более подробнее советую вам самим изучить файл что вам нужно/не нужно, все расписано детально, если возникнут вопросы вы можете спросить у Claude или же любой другой нейронки
Ниже лишь пример что настраивал я, изучите конфиг чтобы потом не деплоить кфг повторно
Те строки которые вы редактируйте обязательно убирайте # чтобы раскоменитровать их и они применились в кфг
[assets]
directory = "../frontend/dist/"
binding = "ASSETS"
run_worker_first = true
routes = [{ pattern = "домен.com", custom_domain = true },] Указывайте это если вам нужен Telegram Bot
DEFAULT_LANG = "en" (Ну если вы знаете китайский можете оставлять его конечно)
PREFIX = "" Оставляем значение пустым чтобы почты не имели никаких префиксов.
DEFAULT_DOMAINS = ["домен.com"]
DOMAINS = ["домен.com"]
JWT_SECRET = "Строку берем тут JWTGENER"
BLACK_LIST = ""
ENABLE_USER_CREATE_EMAIL = true
ENABLE_USER_DELETE_EMAIL = true
ENABLE_AUTO_REPLY = false
# Для того чтобы сделать вашу почту приватной, для личного использования
ADMIN_USER_ROLE = "admin"
PASSWORDS = ["Пароль"]
ADMIN_PASSWORDS = ["АдминПароль"]
DISABLE_ADMIN_PASSWORD_CHECK = false
d1_databases
binding = "DB"
database_name = "name нашей D1 которую мы создавали ранее"
database_id = "ID нашей D1 которую мы создавали ранее"
kv_namespaces
binding = "KV"
id = "ID нашей KV которую мы создавали ранее"
[assets]
directory = "../frontend/dist/"
binding = "ASSETS"
run_worker_first = true
routes = [{ pattern = "домен.com", custom_domain = true },] Указывайте это если вам нужен Telegram Bot
DEFAULT_LANG = "en" (Ну если вы знаете китайский можете оставлять его конечно)
PREFIX = "" Оставляем значение пустым чтобы почты не имели никаких префиксов.
DEFAULT_DOMAINS = ["домен.com"]
DOMAINS = ["домен.com"]
JWT_SECRET = "Строку берем тут JWTGENER"
BLACK_LIST = ""
ENABLE_USER_CREATE_EMAIL = true
ENABLE_USER_DELETE_EMAIL = true
ENABLE_AUTO_REPLY = false
# Для того чтобы сделать вашу почту приватной, для личного использования
ADMIN_USER_ROLE = "admin"
PASSWORDS = ["Пароль"]
ADMIN_PASSWORDS = ["АдминПароль"]
DISABLE_ADMIN_PASSWORD_CHECK = false
d1_databases
binding = "DB"
database_name = "name нашей D1 которую мы создавали ранее"
database_id = "ID нашей D1 которую мы создавали ранее"
kv_namespaces
binding = "KV"
id = "ID нашей KV которую мы создавали ранее"
3.4 Теперь добавляем еще один секрет USE_WORKER_ASSETS его значение == true
3.5 Также создаем CLOUDFLARE_ACCOUNT_ID == ID вашего аккаунта Cloudflare
3.6 Также надо создать CLOUDFLARE_API_TOKEN == API токен который мы создавали в пункте 3
В конечном итоге у нас будет 4 Secret
USE_WORKER_ASSETS
BACKEND_TOML
CLOUDFLARE_API_TOKEN
CLOUDFLARE_ACCOUNT_ID
В конечном итоге у нас будет 4 Secret
USE_WORKER_ASSETS
BACKEND_TOML
CLOUDFLARE_API_TOKEN
CLOUDFLARE_ACCOUNT_ID
4. Теперь нам нужно обратно в раздел "Actions"
Выбираем Deploy Backend жмем Run Workflow
И еще раз Run Workflow в выпадающем меню
Откроется страница процессов и мы увидим желтый статус == в процессе
Выбираем Deploy Backend жмем Run Workflow
И еще раз Run Workflow в выпадающем меню
Откроется страница процессов и мы увидим желтый статус == в процессе
Теперь ждем 1-2 минуты, и видим заветную запись Complete Job
Поздравляю, мы уже на финишной прямой, осталось буквально пару действий
1. Идем на Cloudflare
Видим наш Worker, и его адрес
В конце добавляем к адресу /admin
https://cloudflare_temp_email.USERNAME.workers.dev/en/admin чтобы попасть в админ панель
1. Идем на Cloudflare
Видим наш Worker, и его адрес
В конце добавляем к адресу /admin
https://cloudflare_temp_email.USERNAME.workers.dev/en/admin чтобы попасть в админ панель
2. Вводим пароль, который мы указывали в пункте 4 в поле
ADMIN_PASSWORDS = ["YourPassword"]
PASSWORDS = ["YourPassword"]
Для доступа к сайту нужен PASSWORDS
А для админ панели очевидно ADMIN PASSWORDS
ADMIN_PASSWORDS = ["YourPassword"]
PASSWORDS = ["YourPassword"]
Для доступа к сайту нужен PASSWORDS
А для админ панели очевидно ADMIN PASSWORDS
3. Входим в админ панель, и сразу видим ошибку 500
Что наша D1 не инициализирована, не страшно
Идем в Quick Setup и жмем "Initialize Database"
Что наша D1 не инициализирована, не страшно
Идем в Quick Setup и жмем "Initialize Database"
4. Теперь нам нужно создать юзера/ов(В случае если вам нужно использовать почту в команде)
Идем во вкладку User, жмем "Create User"
Идем во вкладку User, жмем "Create User"
4.1 Вводим почту, пароль, жмем Create User
4.2 Теперь уберем лимит в 5 почт на юзера
Идем в User Settings и в поле Maximum number of email addresses that can be binded
Ставим 0, жмем Save
Идем в User Settings и в поле Maximum number of email addresses that can be binded
Ставим 0, жмем Save
Отлично, теперь с этим аккаунтом мы будем входить, создавать/удалять почты, читать письма, но из админки нам выходить рано, еще нужно настроить Telegram бота, если вам он не нужен, скипайте данный шаг.
1.1 Теперь нам нужно создать секрет с названием TELEGRAM_BOT_TOKEN
В значение пишем токен вашего бота из @Botfаther
И жмем Deploy
В значение пишем токен вашего бота из @Botfаther
И жмем Deploy
2. Теперь нам нужно инициализировать бота, и настроить вайтлист для юзеров которые могут получать сообщения, чтобы ваши письма не утекли кому попало
Идем в админ панель, Telegram Bot жмем Init
Идем в админ панель, Telegram Bot жмем Init
Теперь нам надо настроить чтобы ВСЯ почта, летела к нам в бота, для этого в той же вкладки включаем
Enable Global Mail Push
И пишем ID нашего аккаунта Telegram получить свой ID можно тут @Username_to_id_bot
И жмем Save
Enable Global Mail Push
И пишем ID нашего аккаунта Telegram получить свой ID можно тут @Username_to_id_bot
И жмем Save
Отлично запускаем нашего бота /start
И пишем /lang en
чтобы сменить язык на англ
И пишем /lang en
чтобы сменить язык на англ
По сути уже все готовы для работы, кроме одного, сейчас CF настроен на DROP == Delete всей получаемой почты, нам такое не нужно.
1. Идем на Cloudflare
Выбираем наш домен
1. Идем на Cloudflare
Выбираем наш домен
1.1 Далее жмем Routing Rules
1.2 Ставим тумблер на включено, далее жмем три точки и "Edit"
Выбираем Send To worker
Далее наш Tempmail и жмем Save
Далее наш Tempmail и жмем Save
Чтобы проверить все ли мы сделали правильно идем на testemail
Вводим созданную в панели почту и жмем Send Test
Вводим созданную в панели почту и жмем Send Test
И видим письмо в панели/боте
Статья получилась очень большая, надеюсь ее кто-то дочитает до конца)
Учитывая что можно поднять кучу доменов редактируя их в toml пункт 3
И даже продавать, почему нет?)
Как это делают ребятки из Firstmail / Notletters
Пишите вопросы, помогу
Учитывая что можно поднять кучу доменов редактируя их в toml пункт 3
И даже продавать, почему нет?)
Как это делают ребятки из Firstmail / Notletters
Пишите вопросы, помогу


















































Комментарии 0