Привет, Хабр!

В этом посте мы расскажем, как подключить учетную запись Proton Mail в Eppie CLI — консольный клиент Eppie.

Proton Mail использует при аутентификации протокол Secure Remote Password (SRP) — обычные почтовые клиенты его не поддерживают. В Eppie SRP реализован (мы об этом уже рассказывали здесь), попробовать можно уже сейчас, если скачать наше CLI приложение. Вся настройка займет минуту.

Прежде чем мы начнем, возможно, вам захочется узнать больше об Eppie. Это наш GitHub. Кое-что можно почитать и здесь, на Хабре. А теперь к делу.

Шаг 1: Загрузите и установите Eppie-CLI

install
install

Загрузите свежие бинарники с нашей страницы GitHub. Распакуйте архив в любую папку. В консоли перейдите в эту папку и, если вы на Linux или macOS добавьте разрешение на исполнение для eppie-console:

chmod +x eppie-console

Запустите файл и инициализируйте приложение командой init.

Придумайте надежный пароль.

Сид-фраза вам не понадобится до запуска децентрализованной сети. Но на будущее: никогда и ни с кем не делитесь сид-фразой. И не теряйте ее, потому что без сид-фразы децентрализованная учетная запись будет потеряна навсегда.

Шаг 2. Подключите учетную запись Proton Mail

add-account
add-account

Допустим, вы завершили сеанс. Теперь, при новом запуске приложения, нужно открыть свою учетную запись Eppie командой open и ввести пароль.

Подключим почтовый ящик Proton:

add-account -t Proton

С командой add-account передайте параметр -t (один из трех типов электронной почты, доступных в Eppie). Dec означает децентрализованную почту — она, кстати, уже работает, но доступна только в тестовой сети. Email – это любой сервис электронной почты, кроме Proton. Proton — отдельный тип, поскольку аутентификация по SRP значительно отличается от обычной электронной почты.

Теперь просто введите адрес и пароль Proton Mail. Готово.

Посмотрим на подключенные почтовые ящики с помощью команды list-accounts.

Шаг 3. Посмотрите почту

show-messages
show-messages

show-all-messages — выводит список всех сообщений во всех подключенных почтовых ящиках.

show-message — отображает конкретное сообщение. Понадобятся параметры для идентификации письма. Если запустить команду без параметров, встроенная документация объяснит, какая информация нужна для работы команды.

Шаг 4. Отправьте письмо

send
send

Отправим себе тестовое сообщение:

send -s <адрес-отправителя> -r <адрес-получателя> -t <тема>

Вот оно, во входящих.

show-message
show-message

Вот и все. Если вы забыли или не знаете нужную команду, запросите встроенную документацию:

-?|-h|--help

Конечно, Eppie далека от полноценного релиза, и многое еще предстоит сделать. Есть неудобство при получении писем от других учетных записей Proton Mail. В отличие от большинства почтовых сервисов, которые отправляют письмо в двух экземплярах — чистый текст и html, Proton почему-то отправляет только html. У Eppie пока нет html-парсера, поэтому читать такие сообщения не очень удобно. Но мы работаем над этим. Такого не происходит с письмами из других сервисов, а также если сообщение было отправлено непосредственно из приложения Eppie.

Надеемся, вам будет интересно потестировать.

Не забывайте часто обновляться. Cтавьте нам звезды на GitHub, заводите issue — в общем, давайте дружить.

Спасибо и счастливо!

Комментарии (4)


  1. aleksejs1
    25.06.2024 16:40

    1) Скачал свежий бинарник
    2) Проинициализировал, добавил Proton-аккаунт, получил нотификацию от протона о новом входе

    А вот дальше...

    3) show-all-messages - возвращает пустую строку
    4) при отправки почты пишет The private key could not be found


    1. BaJlepa Автор
      25.06.2024 16:40

      А на каком домене ваш email?
      Есть ли второй пароль?
      Можете немного помучать программу? Может быть другой аккаунт попробовать?


  1. aleksejs1
    25.06.2024 16:40
    +1

    Изучил проект подробнее и возникли вопросы по децентрализации…

    Как это в идеале должно работать?

    На моём клиенте будут храниться мои письма и чьи-то чужие? А что будет на IPFS?

    А куда будет ссылаться DNS?

    И куда будет коннектиться клиент при первом холодном старте?

    Как эта сеть будет противостоять спаму? Что бы спамеры не создавали миллионы децентрализованных ящиков и не рассылали миллиарды спам-писем?


    1. BaJlepa Автор
      25.06.2024 16:40
      +1

      Децентрализованная часть еще в работе, и детали могут меняться, но в общих чертах это выглядит так: в клиентское приложение будет интегрирована нода, которая поддерживает IPFS и SBBS (и в перспективе — другие сети). То есть машины пользователей и будут составлять сеть IPFS. И да, у пользователя будет храниться локальная копия своего почтового ящика, плюс зашифрованные фрагменты чужих писем. Для этого приложение резервирует место на жестком диске. Это похоже на торрент в том смысле, что устройства, подключенные к сети, сами осуществляют “сервис” — хранение и транспортировку писем.

      При подключении приложение ищет знакомые сети по известному списку bootstrapping node list. DNS может участвовать в поиске нод если в списке bootstrapping node указаны их DNS имена а не IP, но это не обязательный элемент системы.

      В будущем планируем запустить сервис имен, чтобы связать человекочитаемые имена с публичными ключами. Функционально это будет похоже на DNS или ENS. Тогда на этапе разрешения имен будет использоваться и собственный сервис имен, и DNS, и ENS.

      Что касается спама, точно будет while list — список доверенных адресов, с которых вы согласны получать письма. Также рассматриваем возможность внедрить proof of work.