Email 在Linux虚拟盒上安装MailHog以捕获传出电子邮件

Email 在Linux虚拟盒上安装MailHog以捕获传出电子邮件,email,centos,config,capture,Email,Centos,Config,Capture,我想通过在我的centos linux开发环境的虚拟机箱中安装MailHog来简化开发。php邮件函数不报告任何问题,也就是说,它返回TRUE,但发送的邮件没有出现在MailHog中。如何正确设置它?按照以下步骤操作: 从下载相应的MailHog版本。在本例中,我使用MailHog_linux_amd64,但您可能需要不同的版本。我假设您使用主目录存储文件。如果您可能不这样做,请进行相应的修改。 如果您的虚拟机使用ip过滤,那么您应该允许通过端口8025进行通信,并在iptable配置中添加一条

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

按照以下步骤操作:

从下载相应的MailHog版本。在本例中,我使用MailHog_linux_amd64,但您可能需要不同的版本。我假设您使用主目录存储文件。如果您可能不这样做,请进行相应的修改。 如果您的虚拟机使用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:

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

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

从您的主机上查看MailHog web界面使用我们上面使用的主机名:。应该出现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的邮件功能发送任意数量的电子邮件

还有一些想法:

如果要覆盖默认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"""
遵循以下步骤:

从下载相应的MailHog版本。在本例中,我使用MailHog_linux_amd64,但您可能需要不同的版本。我假设您使用主目录存储文件。如果您可能不这样做,请进行相应的修改。 如果您的虚拟机使用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:

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

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

从您的主机上查看MailHog web界面使用我们上面使用的主机名:。应该出现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的邮件功能发送任意数量的电子邮件

还有一些想法:

如果要覆盖默认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"""