email - 在 Linux virtual box 上安装 MailHog 以捕获外发电子邮件

标签 email centos config capture

我想通过在我的虚拟盒子中的 centos linux 开发环境中安装 MailHog 来简化开发。 php mail() 函数没有报告任何问题(也就是说,它返回 TRUE)但是外发邮件没有出现在 MailHog 中。我应该如何正确设置它?

最佳答案

按照以下步骤操作:

  • https://github.com/mailhog/MailHog/releases 下载合适的 MailHog 版本.我在此示例中使用 MailHog_linux_amd64,但您可能需要不同的版本。我假设您使用您的主目录来存储您的文件。如果您不这样做,请相应地进行必要的修改。
  • 如果您的 VM 使用 ip 过滤,那么您应该允许通过端口 8025 进行通信,并在 iptable 配置中添加一行并重新启动它:

    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 是主机如何查看 VM 的域名。现在您应该会看到一些行,其中详细说明了它使用的 IP 地址和端口。

  • 从这里下载mhsendmail:https://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界面。

  • 使用此 oneliner 从 VM 的命令行测试邮件发送:

    php -r "\$from = \$to = 'your.emailaddress@gmail.com'; \$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"""
    

关于email - 在 Linux virtual box 上安装 MailHog 以捕获外发电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39115015/

相关文章:

java - 如何使用JAVA代码发送电子邮件?

centos - 强制重新生成所有图表

python - 未找到导入 MySQLdb 和 `GLIBC_2.14'

python - 具有重复部分/对象的 Python 配置文件

c++ - 从 C++ 中使用 curl 发送电子邮件

css - 如何使用内联样式更改最后一个子项

email - 通过带有 gnutls 和额外参数的 smtp 使用 emacs24 发送电子邮件

linux - 将 CentOS (RedHat) 5.4 升级到 6

php - 在 symfony 中哪里存储用户可编辑的配置参数?

port - 托管 minio 服务器时如何更改端口号?