docker安装独角数卡系统-邮件配置正确后没有发送邮件?

为几乎没写过正式的 Laravel 代码,所以对队列机制还不是很熟悉。用打log方式调试了很久,才发现发送的邮件的代码根本没执行。安装启用supervisor就可以了。

docker安装独角数卡系统-邮件配置正确后没有发送邮件?
Photo by Rubaitul Azad / Unsplash

在Docker环境安装独角数卡程序后,我遇到了订单状态更新,没有收到邮件的问题。本文将介绍此问题的可能原因,并提供解决方案,以确保您正常使用独角数卡Docker环境发送邮件。

背景

独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!链接:https://github.com/assimon/dujiaoka

部署完整后,测试完订单全流程后,才发现没有收到邮件。于是花了一点时间研究。

问题分析

常见问题原因分析:

  1. 邮件配置错误:如果邮件服务器配置不正确,或者SMTP参数设置有误,可能导致无法发送邮件。
  2. 邮件端口屏蔽:某些网络环境中,邮件端口(一般是SMTP端口,默认为25或者587)可能被屏蔽,从而导致无法发送邮件。
  3. 防火墙限制:系统防火墙或安全组设置可能会限制对邮件发送端口的访问,导致无法发送邮件。

而我的问题不是上面这几种,因为在系统后台->邮件测试那,已经测试通过,收到测试邮件了。那么可能得原因就是代码这个方面的问题。

因为几乎没写过正式的 Laravel 代码,所以对队列机制还不是很熟悉。用打log方式调试了很久,才发现发送的邮件的代码根本没执行。

解决方案

后面反复查看 dujiaoka官方 的README,才发现我根本没用 supervisor . 而这就是邮件没有发出去的原因。然后参考 官方Wiki: https://github.com/assimon/dujiaoka/blob/master/debian_manual.md 安装配置了 supervisor 。 这里需要调整一下 dujiaoka.conf 配置。因为这是以docker方式运行的。下面贴出我的配置:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=docker exec dujiaoka php artisan queue:work # update this line
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/your/path/dujiaoka-worker.log # update this line

需要更新两个地方:

  1. dujiaoka 是我的docker容器名,请根据你的实际情况修改
  2. 日志输出位置

启动 supervisor 之后,我这几天测试的10封邮件 一股脑发给我了。telegram通知也可以正常接收。

好了,就这些!