为什么我的Laravel脚本不能在发送邮件时使用变量

时间:2016-04-27 07:25:26

标签: email laravel-4

我正在使用Laravel 4.x并且有一个发送电子邮件的控制器脚本。如果我的收件人参数是硬编码的,则脚本可以正常工作。

$email_data = array('inv_no' => '12345');

Mail::send('view.emailbody', $email_data, function($message) {
  $message->to('johndoe@abc.com', 'ABC Co')->subject('Invoice');
});

但如果我在收件人参数上使用变量,我的脚本就不起作用了。

$email_data = array('inv_no' => '12345');
$company_email = 'johndoe@abc.com';
$company_name = 'ABC Co';

Mail::send('view.emailbody', $email_data, function($message) {
  $message->to($company_email, $company_name)->subject('Invoice');
});

我真的无法弄清楚我的错误在哪里。

提前致谢

2 个答案:

答案 0 :(得分:1)

你必须传递那些变量,然后它将按如下方式工作:

$email_data = array('inv_no' => '12345');
$company_email = 'johndoe@abc.com';
$company_name = 'ABC Co';

Mail::send('view.emailbody', $email_data, function($message) use ($company_email, $company_name) {
  $message->to($company_email, $company_name)->subject('Invoice');
});

答案 1 :(得分:0)

由于某些(奇怪的)原因,如果收件人参数来自表单提交条目,则脚本可以正常工作

$email_data = array('inv_no' => '12345');

Mail::send('view.emailbody', $email_data, function($message) {
  $message->to(Input::get('email'), Input::get('company-name'))->subject('Invoice');
});