使用laravel Mail功能时,我收到以下错误:
Header may not contain more than a single header, new line detected
这是从错误日志中获取的堆栈跟踪:
[2015-03-04 23:52:31] production.ERROR: exception 'ErrorException'
with message 'Header may not contain more than a single header, new line detected' in /var/www/pickup/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php:342
Stack trace:
#0 [internal function]: Illuminate\Exception\Handler->handleError(2, 'Header may not ...', '/var/www/pickup...', 342, Array)
#1 /var/www/pickup/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php(342): header('statusText: Exp...', false, 412)
#2 /var/www/pickup/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php(375): Symfony\Component\HttpFoundation\Response->sendHeaders()
#3 /var/www/pickup/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(643): Symfony\Component\HttpFoundation\Response->send()
#4 /var/www/pickup/public/index.php(49): Illuminate\Foundation\Application->run()
#5 {main} [] []
我的邮件功能是:
public function sendmail($user){
Mail::queue('emails.verify', array('encryption'=>self::encrypt($user->email) , 'name'=>$user->first_name), function($message) use($user)
{
$message->to($user->email, $user->first_name)->subject('[Pickup] Please verify your email '.$user->email);
});
}
答案 0 :(得分:0)
听起来,您发送到to
方法的变量之一包含换行符,而to
方法希望您自己清理这些值。
我从一个简单的trim
电话
$message->to(trim($user->email), trim($user->first_name))->subject(
'[Pickup] Please verify your email '.trim($user->email));
如果这不起作用,则意味着其中一个变量在中间有一个换行符。我会尝试记录值,然后根据您找到的内容清理变量。此外,如果您只想跳过不良数据,将所有内容包装在try/catch
中是另一种方法
try
{
$message->to(trim($user->email), trim($user->first_name))->subject(
'[Pickup] Please verify your email '.trim($user->email));
}
catch (\Exception $e)
{
\Log::error($e->getMessage());
}