2016-08-24 25 views

回答

3

遵循以下步骤:

  • https://github.com/mailhog/MailHog/releases下载相应版本MailHog。在本例中我使用MailHog_linux_amd64,但您可能需要不同的版本。我假设你使用你的主目录来存储你的文件。在可能的情况下,您不要这样做,请相应地进行必要的修改。
  • 如果你的虚拟机使用IP过滤,那么你应该让与添加一行到的iptable配置和重新启动通过端口8025通讯:

    vim /etc/sysconfig/iptables 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8025 -j ACCEPT 
    service iptables restart 
    
  • 启动MailHog用下面的命令:

    ./MailHog_linux_amd64 -hostname=mylocal.vbox:8025 
    

    其中mylocal.vbox是主机如何看到虚拟机的域名。现在您应该看到一些行,详细说明它使用哪些IP地址和端口。

  • 从这里下载mhsendmailhttps://github.com/mailhog/mhsendmail/releases

  • 将其更改为可执行文件(相应地调整文件的路径):

    chmod 777 /home/you/mhsendmail_linux_amd641 
    
  • 更改php.ini使用mhsendmail而不是sendmail

    vim /etc/php.ini 
    sendmail_path = "/home/you/mhsendmail_linux_amd64" 
    service httpd restart 
    
  • 查看MailHog网从主机接口(使用我们上面使用的主机名):http://mylocal.vbox:8025/。 MailHog的webmail界面应该出现。

  • 测试邮件从VM的命令行发送这个oneliner:

    php -r "\$from = \$to = '[email protected]'; \$x = mail(\$to, 'subject'.time(), 'Hello World', 'From: '. \$from); var_dump(\$x);" 
    

    应该显示true和MailHog的Web界面应显示新的电子邮件。

  • 玩得开心,通过PHP的mail()函数发送尽可能多的电子邮件,只要你想。

一些更多的想法:

  • 如果要覆盖默认的IP地址和端口设置,那么你应该使用以下语法:

    ./MailHog_linux_amd64 -ui-bind-addr=192.168.56.104:8026 -api-bind-addr=192.168.56.104:8026 -hostname=mylocal.vbox:8026 -smtp-bind-addr=192.168.56.104:8025 
    
  • 在这你将不得不在php中转义设置。ini这样:

    sendmail_path = "/home/you/mhsendmail_linux_amd64 --smtp-addr=""192.168.56.104:8025"""