Laravel - 当电子邮件地址变量时,邮件失败,硬编码时工作

时间:2014-11-27 12:51:29

标签: php email laravel smtp sendmail

我使用Laravel class Mail向客户发送电子邮件:

$item = DB::table('questions')->find($id);

var_dump($item->email);

// send mail to customer
Mail::queue('emails.email', $data, function($message) {     

    $message->to($item->email)->subject('Odpoveď od SCSPPIMKA');    
    $message->sender('mailer@scspimka.sk');

});

当我在$message->to('example@email.com')中对电子邮件地址进行硬编码时,一切正常,但当我在变量中使用电子邮件地址时:$message->to($item->email)我收到错误:

Undefined variable: item' in /data/www/scsppimka.local/laravel/vendor/jeremeamia/SuperClosure/src/Jeremeamia/SuperClosure/SerializableClosure.php(99) : eval()'d code:2 

$ item->电子邮件的Vardump显示具有正确电子邮件地址的字符串。什么可能导致这个问题?

1 个答案:

答案 0 :(得分:2)

您需要使用use从当前上下文中将$item变量带到匿名函数的上下文中:

Mail::queue('emails.email', $data, function($message) use ($item) {     

    $message->to($item->email)->subject('Odpoveď od SCSPPIMKA');    
    $message->sender('mailer@scspimka.sk');

});