【发布时间】:2016-02-29 23:21:32
【问题描述】:
我有一个使用 Laravel 5.2 API 的 AngularJS 1.5 应用程序,我试图在应用程序的不同点发送电子邮件。所以我可以向 Laravel 发送数据,它会记录在我指定的表格中,但是当它发送确认电子邮件时,它会给我这个错误,HTTP 状态代码为 500:MethodNotAllowedHttpException
奇怪的是,它在我的笔记本电脑上的本地开发中运行良好。但是 AWS EC2 实例上的功能相同,并且在发送任何电子邮件时都会失败。我正在使用 SendGrid 来管理发送电子邮件,但我认为我不需要为此更改任何设置。
例如:
$emailUser = array();
$emailUser['email'] = $request->email;
$emailUser['first_name'] = $request->first_name;
$emailUser['last_name'] = $request->last_name;
$emailUser['randomStr'] = str_random(36);
$emailUser['remove_dtm'] = Carbon::now()->addWeeks(2);
//Add a password reset set to 2 weeks out for the user to register
DB::table('password_resets')->insert([
'email' => $emailUser['email'],
'token' => $emailUser['randomStr'],
'remove_dtm' => $emailUser['remove_dtm']
]);
Mail::send('email.registered_user', $emailUser, function($message) use ($emailUser)
{ $message->to($emailUser['email'], $emailUser['first_name'] . ' ' . $emailUser['last_name']);
$message->from('WSCUSTOMERPO@waterstoneco.com', 'Waterstone Faucets');
$message->replyTo('WSCUSTOMERPO@waterstoneco.com', 'Waterstone Faucets');
$message->subject("Welcome to the Waterstone Faucets Portal!");
});
当我尝试重置用户密码时,它将在password_reset 表中创建记录,但不会在实时站点上发送电子邮件。同样的功能在我的笔记本电脑上也能正常工作。我检查了我在 Angular 端发帖,并且 Laravel API 在运行这个函数时期待一个 post HTTP 调用。
我在这里错过了什么?
非常感谢您的帮助!
【问题讨论】:
-
你在使用 smtp 吗?您的现场环境可能会阻止它。
-
检查您的垃圾邮件箱。
-
尝试设置驱动记录,只是为了检查问题是否是电子邮件驱动而不是代码引起的
标签: angularjs laravel amazon-ec2 sendgrid