Как отправить электронное письмо нескольким пользователям, и если у пользователя такой же идентификатор, тогда отправить только одно электронное письмо в Laravel? - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь отправить письмо нескольким пользователям. Иногда у этих пользователей может быть один и тот же идентификатор. Если электронное письмо отправлено этому пользователю, то вместо отправки двух электронных писем отправьте только одно электронное письмо пользователям и переместите следующего пользователя для отправки электронного письма.

 $cusItems = DB::("Select * from items");
        //we will assume:
        //userid         email               item
        //   2             k@gmail.com        eggs
        //   4             m@yahoo.com         sugar
       //    2             k@gmail.com         milk


    foreach ($cusItems as $key) { 

      $uEmail = $key->email;
      $id = $key->userid;

        data = [
          'email' => $key->email,
          'item' => $key->item,
        ];

Mail::send(['html'=>'emailTemp'], $data , function($message) use ($uEmail, $id) { $message->to($uEmail, 'Your Items')->subject('Items #'. $id); $message->from('u2345245@deakincollege.com.au','Semester4'); }); }

тогда электронное письмо должно быть: - при отправке пользователю с идентификатором 2.

Первый шаблон электронного письма: -

на: k@gmail.com sub: XXX

Привет,

Ваши товары: -

  • яйца
  • молоко

спасибо

второй шаблон электронного письма: -

кому: m@yahoo.com sub: XXX

Привет,

Ваши товары: -

  • сахар

спасибо

Пожалуйста, дайте мне знать, если я не понимаю, мой родной язык не английский sh, и я попробовал лучше всего объяснить. спасибо

1 Ответ

0 голосов
/ 16 июня 2020

Вы должны удалить дубликаты из самого запроса, чтобы не получить повторяющиеся значения.

ваша таблица:

 userid   email        item  itemid
    2   k@gmail.com    eggs     1
    4   m@yahoo.com    sugar    2
    2    k@gmail.com   milk     3

Измените свой запрос на

SELECT userid,email,GROUP_CONCAT(item) as items,GROUP_CONCAT(itemid) as itemids FROM `items`  GROUP BY userid

Это даст вам следующий результат. Все, что вам нужно сделать, это l oop запрос и отправить письмо с элементами, которые есть для каждого пользователя в одном письме.

userid   email         items     itemids
   2    k@gmail.com   eggs,milk   1,3
   4    m@yahoo.com   sugar        2

Я надеюсь, что это поможет вам решить вашу проблему.

...