laravel - 504 网关超时 | 提交表格到邮件后
问题描述
提交表单时出现此错误,504 Gateway Time-out
我不知道为什么,当我用 mailtrap.io 测试我的邮件时它工作了,但是当我使用我的主机设置时,它给了我一个错误
这是我的邮件控制器
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class Contactmail extends Controller
{
public function create()
{
return view('contact');
}
public function store()
{
$data = request()->validate([
'name' => 'required',
'email' => 'required|email',
'message' => 'required',
]);
Mail::to('myemail@email.com')->send(new \App\Mail\Contactmail($data));
return redirect('contact')
->with('message', 'Thanks for your message. We'll be in touch.');
}
}
并且视图刀片是
@component('mail::message')
# Thank you for your message
<strong>Name</strong> {{ $data['name'] }}
<strong>Email</strong> {{ $data['email'] }}
<strong>Message</strong> {{ $data['message'] }}
@endcomponent
所以我不知道我做错了什么
解决方案
如果您在本地测试您的项目,可能是因为您的 ISP 阻止了该端口。
我使用 tinker 进行快速简单的测试,至少获得错误或成功的堆栈跟踪。
从您的项目路径在终端中运行 tinker(因此它会从您的 env 文件加载您的邮件设置):
php artisan tinker
然后运行此代码段(不要忘记更新要发送到的电子邮件):
\Mail::raw('hello world', function($message) {
$message->subject('Test Mail')->to('test@example.org');
});
这应该会给你一个成功或至少一个堆栈跟踪来进一步调试问题。
附带说明一下,如果您使用 gmail 进行测试,您可能需要在 Gmail 中配置 2FA 或设置不安全应用选项以通过 Gmail 发送进行测试。
推荐阅读
- python - 卡在谷歌身份验证的密码输入
- macos - Docker Desktop for Mac 不在指定端口的 localhost 中运行容器
- python-3.x - 在 TreeView 中排序
- postgresql - Ubuntu 18.04 和 PostgreSQL 10.9:我应该填写什么属性表来让它们连接?
- javascript - 如何使用nodejs http修复“'listener'参数必须是一个函数”
- android - 如何制作自定义 SwitchCompat
- javascript - 如何在 Javascript 对象中引用 JSON 集作为键
- apache-kafka - 在添加消费者时处理消费者组的重新平衡
- ios - 有没有办法在应用程序上使用配色方案,而不必在代码的每个部分单独编写颜色值?
- linq - 下面的逻辑最简单的写法是什么