您在应用程序中使用电子邮件,对吗?好的,这是一个修辞问题。当然,您会这样做。尽管电子邮件已有30多年的历史,但到目前为止,它仍然是地球上最受欢迎的应用程序。以下是Pingdom的一些统计数据,2012年:
>惊人!
>我敢肯定你知道我的意思。您认为您已将应用程序设置为某种调试模式。鉴于此,您开始测试,该测试从您的应用程序中发送了大量电子邮件。一直以来,您会感到很自在,因为他们知道,除了您会看到它们,但您都不会看到它们。
您的测试过去,您祝贺自己,然后继续前进。不久之后,您会收到一个相反的内容,我们只是说
在那里吗?不想再在那里吗?我猜你没有。这是解决方案 - 邮件捕捉器。如果您不熟悉,MailCatcher
>听起来像是一个不错的解决方案?无论您是疲倦,在压力下,团队中的新工作,还是只需要进行测试 - MailCatcher都将确保任何电子邮件都不会在您的网络外发送,甚至在开发虚拟机上都不会发送。…运行一个超级简单的SMTP服务器,该服务器捕获发送给它的任何消息以显示在Web界面中。运行MailCatcher,将您喜欢的应用程序设置为SMTP://127.0.0.1:1025而不是您的默认SMTP服务器,然后查看http://127.0.0.1:1080,查看到目前为止到达的邮件。
>在这篇文章中,我将向您展示如何在电子邮件捕获电子邮件时将其设置并通过界面运行。
>
预先准备的虚拟机
然后,在克隆的项目目录中,运行以下命令:
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>>这将启动虚拟机配置过程,随着配置过程的运行,显示了很多输出。配置的虚拟机非常简约。它具有
vagrant up> nginx
已安装。
>您可能不必运行第三个命令。我这样做了,因为我使用了非常简约的Ubuntu精确的64 Vagrant Image,它需要包装来构建MailCatcher。请注意,如果您使用不同的Linux发行版或版本,则单个软件包名称可能会有所不同。
注意:如果您遵循标准MailCatcher启动过程,它将仅在IP 127.0.0.1和端口1025上收听。使用此设置,我们将无法从主机计算机中看到它。因此,我在192.168.56.111上添加了公共IP,并更改了MailCatcher的配置,以便在所有IP上听。>现在,您可以在http://192.168.56.111:1080上查看MailCatcher Web UI。它看起来像下图:
<span>sudo apt-get install -y vim curl python-software-properties lynx nginx </span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc </span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3 </span><span>sudo gem install mailcatcher </span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
>这是一个非常简单的界面,在邮件捕获队列中列出了电子邮件,如果可用,则在顶部列出。当列表中有电子邮件时,底部窗格很好地向您展示了有关它们的信息,我们将在稍后看到。
>在本文中,我创建了一个简单的PHP脚本,index.php,在项目存储库中可用,可以在http://192.168.56.111上访问。它使用SwiftMailer连接到MailCatcher并在加载时发送电子邮件。您可以在相当标准的HTML页面下方的代码中看到。
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
>包括邮件loader.php,可在下面可用。
>vagrant up如果您不熟悉SwiftMailer Aurelio在SitePoint上的文章,则提供了极好的介绍。顺便说一句,这是我用于此示例的代码。谢谢Aurelio。
基本上,只有一行对我们来说很重要,这是以下内容:
>这将创建与我们刚刚设置的MailCatcher服务器的连接。就是这样,没什么好看的!现在,我已经重新加载了该页面三遍,该页面已发送了三封电子邮件。您可以看到它们在下图中的MailCatcher中列出。
<span>sudo apt-get install -y vim curl python-software-properties lynx nginx </span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc </span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3 </span><span>sudo gem install mailcatcher </span><span>sudo mailcatcher --http-ip 0.0.0.0</span>>
>我单击了第一个条目,该条目显示了收到,从,和主题详细信息以及电子邮件的正文。如果我们切换到源标签,如下图所示,我们可以看到原始的电子邮件详细信息:
通过第三个选项卡,我们可以使用分形来分析电子邮件的内容。今天我会跳过这一点,因为它超出了本文的范围。
>完成此操作,我们现在可以像以前那样创建电子邮件,设置收件人,主题,附件等,如我上面的内容,并且知道它们永远不会真正进入真实的地址。
>现在,我们可以放心,我们的客户(及其客户)将永远不会收到任何从未打算给他们的电子邮件。真是一种解脱。
总结
现在,这是一个相当微不足道的示例,仅在示例中使用简单的SwiftMailer代码段。我敢肯定,您的代码库比这个示例要复杂得多。
您已经使用MailCatcher吗?您将其整合的经验是什么?有没有发现您不知道的问题?在评论中分享您的想法。
您的应用程序的SMTP设置指向MailCatcher的SMTP服务器。该服务器在Localhost上运行并在端口1025上倾听。设置这些值的确切过程将取决于您的应用程序的语言和框架,但是通常,您需要将SMTP地址设置为“ Local -Host”,而SMTP端口则将其设置为'1025 '。
MailCatcher并非设计用于生产环境。它是一种用于在当地开发环境中使用的开发工具。在生产环境中使用MailCatcher会导致丢失的电子邮件和其他问题。对于生产环境,您应该使用可靠的,可生产的SMTP服务器。
>>我可以将MailCatcher与Docker使用吗?有包括MailCatcher的Docker图像,您还可以创建自己的Dockerfile,以将MailCatcher包括在Docker设置中。在Docker容器中运行MailCatcher时,您将需要确保曝光适当的端口,以便您的应用程序可以连接到MailCatcher SMTP服务器。
如果您在MailCatcher上遇到麻烦,第一步是检查终端中的输出是否有任何错误消息。这些消息通常可以提供有关出现问题的线索。如果您在发送电子邮件时遇到困难,请确保正确配置了您的应用程序的SMTP设置以指向MailCatcher的SMTP服务器。
>您可以通过在启动MailCatcher的终端中按CTRL C来停止MailCatcher服务器。另外,如果您启动MailCatcher作为背景过程,则可以通过运行命令Killall MailCatcher来停止它。
MailCatcher Web界面的感觉无法自定义。但是,由于MailCatcher是开源的,因此您可能会修改源代码以自定义接口。请注意,这将需要对Ruby和Sinatra Web框架有很好的了解。
以上是通过MailCatcher发送电子邮件调试的详细内容。更多信息请关注PHP中文网其他相关文章!