【问题标题】:Send Email error发送电子邮件错误
【发布时间】:2014-08-21 02:51:39
【问题描述】:

我正在使用 Laravel 队列来让我的邮件正常工作。我的SendMail 班级就是这样

class SendMail {
    public static function sendAbuseEmail($job,$data, $toEmail, 
    $subject, $fromEmail, $fromName) {
        Mail::send(array('html' => 'emails.abuseUrl.abuse'), 
                   $data, function ($m) use ($toEmail, $subject, 
                   $fromEmail, $fromName) {
            $m->from($fromEmail, $fromName);
            $m->to($toEmail)->subject($subject);
        });
        $job->delete();
    }
 }

我就是这样使用它的

$data = array('name' => Input::get('name'), 
              'quote' => Input::get('quote'), 
              'from' => Input::get('email'),
              'abuseUrl'=> Input::get('abuseUrl'));
$subject = Input::get('subject');
$toEmail = Config::get('settings.adminEmail');
$fromEmail = Input::get('email');
$fromName = Input::get('name');
Queue::push('SendMail@sendAbuseEmail', $data,$toEmail, 
           $subject, $fromEmail, $fromName);

但我收到一个错误

[2014-08-20 17:25:41] production.ERROR: 异常 'ErrorException' 带有消息'缺少 Codeforge\Mailers\SendMail::sendAbuseEmail() 的参数 3,在 /var/www/laravel/ 中调用vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php 在第 96 行并在 /var/www/laravel/app/Codeforge/Mailers/SendMail.php:1 中定义'

我在这里做错了什么?

【问题讨论】:

  • 你看到$toEmail有什么价值了吗?
  • @MarcB .. 我用我的电子邮件替换了 toEmail,即使它不起作用。同样的错误。

标签: php laravel laravel-4


【解决方案1】:

看看QueueInterface#push()的方法签名:

public function push($job, $data = '', $queue = null);

在哪里$data can be anything that's json_encodeable。惯例是传递一个关联数组,而不是传递有序参数:

Queue::push('SendMail@sendAbuseEmail', array(
    'data' => $data,
    'toEmail' => $toEmail,
    'subject' => $subject,
    'fromEmail' => $fromEmail,
    'fromName' => $fromName
));

在您的工作人员中,您可以访问以下值:

public static function sendAbuseEmail($job, array $data)
{
    $toEmail = $data['toEmail'];
    // etc...
}

这是因为所有驱动程序(Sync 驱动程序除外)都需要序列化此数据并将其写入某种数据存储以供以后参考。我相信它是这样设计的,因为它更容易跟踪它是否是单个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-17
    • 2016-05-06
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多