首页 > 解决方案 > laravel 发送邮件到

问题描述

大家晚上好,我有一些问题,发送邮件到:我在控制器中有一个代码,并且从数据库中获取了连接数据,这个 $survey 变量显示给了我属于团队的调查的电子邮件。但是我需要一些如何为我从 $survey 变量中获得的所有电子邮件发送电子邮件。当我将 $survey 变量放入 $message->to($survey); 它向我展示了未定义的变量

我的代码如下,我该如何使用它。当我输入 ->to(); 正常的一个电子邮件地址它可以工作,但我需要向所有团队成员发送相同的电子邮件

public function startSurvey(Request $req) {

    $nameSurvey = $req->input('SurveySelectBox');
    $startDate = $req->input('surveyStartDate');
    $endDate = $req->input('surveyEndDate');

    $data = array(
        'updated_at' => Carbon::now(),
        'started_at' => $startDate,
        'ended_at' => $endDate
    );

    DB::table('survey')->where('surveyId','=',$nameSurvey)->update($data);

    $survey = Survey::where('surveyId' , '=', $nameSurvey)
        ->join('team','team.teamId', '=', 'survey.teamId')
        ->join('teammembersall','teammembersall.TeamId', '=', 'team.TeamId')
        ->join('users','users.id', '=', 'teammembersall.UserId')
        ->select('users.email')
        ->get();

    Mail::raw('You have new survey to answer: http://localhost:8000/profile', function ($message) {
        $message->from('kristijanask@gmail.com', 'New Survey released');
        $message->to($survey);
    });

    return redirect('surveyDrafts');
}

标签: laravelemailmessagesend

解决方案


您需要使用use ($survey)Mail 匿名函数中的变量:

Mail::raw('...text', function ($message) use ($survey) {
    $message->from('kristijanask@gmail.com', 'New Survey released');
    $message->to($survey);
});

您可能还需要在查询结果上使用->pluck()toArray(),以使结果成为数组:

$survey = Survey::where('surveyId' , '=', $nameSurvey)
    // long query
    ->get()
    ->pluck('email')
    ->toArray();

推荐阅读