Использование mailcatcher на Cloud9 - перекрытия портов

Я пытаюсь подтвердить mailcatcher, как описано ниже: [ Использование mailcatcher в cloud9 ide

который просит меня сделать

mailcatcher --http-port $PORT --ip $IP and you can access it from 

который позволил бы мне получить доступ к mailcatcher на https://project_name-username.c9.io/

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

mailcatcher --http-port $PORT --ip $IP
Starting MailCatcher
==> smtp://0.0.0.0:1025
~~> ERROR: Something's using port 8080. Are you already running MailCatcher?

Если я выйду из сервера и запущу вместо этого mailcatcher, он сможет получить доступ к странице mailcatcher, но форма будет пустой... никаких писем для подтверждения.

Похоже, что нет никакого способа выбрать другой порт для моего приложения для запуска на Cloud9, хотя в моем последнем вопросе я намекнул, что порты 8081 и 8082 доступны (я до сих пор не нашел способ работать с этим из). Кроме того, не нашли способ запустить mailcatcher на 8081 или 8082.

Если кто-нибудь знает, как обойти это, пожалуйста, дайте мне знать!

2 ответа

MailCatcher запускает две разные службы: SMTP для перехвата электронной почты из вашего приложения и веб-интерфейс HTTP для просмотра перехваченной электронной почты.

По умолчанию он привязывает оба к локальному IP-адресу 127.0.0.1, так что вы можете использовать его только на той же машине, на которой работает MailCatcher. IP-адрес и порт для каждого могут быть настроены независимо. --ip является ярлыком для изменения адреса для обеих служб одновременно. Это может означать, что вы больше не можете доставлять электронную почту на локальный SMTP-адрес. Таким образом, предыдущий ответ почти правильный, но следует изменить только HTTP-адрес:

  • Настройте приложение для доставки электронной почты 127.0.0.1:1025 используя SMTP для обычных инструкций MailCatcher.
  • Запустите свой сервер приложений на порт 8080 с помощью $PORT
  • Запустите MailCatcher, предоставляющий сервис HTTP, используя $IP и другой порт:

    mailcatcher --http-ip $IP --http-port 8081

  • Откройте MailCatcher, используя URL-адрес рабочей области, но с указанным портом:

    http://<workspace-name>-<username>.c9.io:8081

Мы только внедряем поддержку нескольких портов, поэтому теперь вам должны быть доступны 8080, 8081 и 8082. Вот как вы можете получить к ним доступ:

  • Запустите сервер приложений на порту 8080, используя $PORT
  • Запустите mailcatcher с:

    mailcatcher --http-port 8081 --ip $IP

  • В ваших исходящих письмах вы должны установить URL для использования https://<workspace-name>-<username>.c9.io:8081 для службы Mailcatcher (обратите внимание на :8081)

Надеюсь это поможет.

Другие вопросы по тегам