我正在尝试使用我的laravel控制器发送邮件,这是一个非常简单的邮件,在我的localhost中发送没有任何问题但是一旦在服务器中我收到此错误:
20170325T153701: /public/index.php
PHP Fatal error: Call to a member function send() on a non-object in /public/index.php on line 56
PHP Fatal error: Call to a member function send() on a non-object in /vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php on line 107
浏览器只显示500错误,错误只出现在我的错误日志中。这是用于发送邮件的代码
use Illuminate\Support\Facades\Mail; // just to say I'm calling it
$v_code = str_random(30);
$mail_content = array('code' => $v_code);
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['pass']),
]);
if ($user) {
Mail::send('User::mail.verifyMail', $mail_content, function ($message) use ($data) {
$message->to($data['email'], $data['name'])
->subject('Verify your email address');
});
答案 0 :(得分:0)
删除use
行。
\Mail::send('User::mail.verifyMail', $mail_content, function ($message) use ($data) {
$message->to($data['email'], $data['name'])
->subject('Verify your email address');
});
答案 1 :(得分:0)
解决方案是使用(字符串)转换$ name。我不知道为什么,但只要名称包含空格(''),它就会失败并且$ name被视为null。因此,(字符串)解决了这个问题。