在Cloud9上使用mailcatcher - 端口重叠

时间:2015-07-22 09:04:49

标签: ruby-on-rails localhost port cloud9-ide mailcatcher

我尝试按照以下说明确认mailcatcher: [Using mailcatcher in cloud9 ide

要求我做

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

允许我在https://project_name-username.c9.io/

上访问mailcatcher

但是,为了运行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可用(我仍然没有想到找出一种方法来解决这个问题)。此外,还没有找到在8081或8082上运行邮件捕获程序的方法。

如果有人知道怎么解决这个问题,请告诉我!

2 个答案:

答案 0 :(得分:5)

MailCatcher运行两种不同的服务:SMTP用于捕获应用程序中的电子邮件,以及用于查看已捕获电子邮件的HTTP Web界面。

默认情况下,它会绑定到本地主机IP地址127.0.0.1,因此您只能在运行MailCatcher的同一台计算机上使用它。每个IP地址和端口可以单独配置。 --ip是一次更改两个服务的地址的快捷方式。这可能意味着您无法再向localhost SMTP地址发送电子邮件。所以前面的答案几乎是正确的,但应该只改变HTTP地址:

  • 将您的应用程序配置为使用SMTP按照正常的MailCatcher说明向127.0.0.1:1025发送电子邮件。
  • 使用8080
  • 在端口$PORT上启动应用程序服务器
  • 使用$IP和另一个端口启动MailCatcher公开HTTP服务:

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

  • 使用您的工作区URL但使用指定的端口打开MailCatcher:

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

答案 1 :(得分:3)

我们刚刚推出了对多个端口的支持,因此现在应该可以使用8080,8081和8082。以下是您可以访问它们的方法:

  • 使用$ PORT
  • 在端口8080上启动应用程序服务器
  • 使用以下命令启动mailcatcher:

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

  • 在外发电子邮件中,您应将网址设置为https://<workspace-name>-<username>.c9.io:8081用于邮件收发服务(请注意:8081

希望这有帮助。