【问题标题】:Laravel - Mail fails when email address is in variable, works when hardcodedLaravel - 当电子邮件地址在变量中时邮件失败,在硬编码时工作
【发布时间】:2015-01-26 02:02:27
【问题描述】:

我正在使用 Laravel 类 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->email 的 Vardump 显示带有正确电子邮件地址的字符串。什么会导致这个问题?

【问题讨论】:

    标签: php email laravel smtp sendmail


    【解决方案1】:

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

    Mail::queue('emails.email', $data, function($message) use ($item) {     
    
        $message->to($item->email)->subject('Odpoveď od SCSPPIMKA');    
        $message->sender('mailer@scspimka.sk');
    
    });
    

    【讨论】:

    • 如何在 use() 中传递多个变量??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2012-12-14
    • 2018-09-07
    • 2018-09-10
    • 2020-03-02
    • 2014-02-27
    • 2016-11-04
    相关资源
    最近更新 更多