使用laravel邮件功能时出现标题错误

时间:2015-03-04 18:27:11

标签: laravel

使用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);
        });
    }

1 个答案:

答案 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());
}
相关问题