Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 09.12.2017 11:02:44

Как с помощью mailable отправить письмо не используя класс User

Laravel 5.5, Homestead
Вопрос именно в имени. Отправка на просто емайл без проблем, но при попытке создать коллецию с майлом и именем, что судя по докуменации должно сработать, получаю ошибку: Address in mailbox given [ User1 Name] does not comply with RFC 2822, 3.6.2.

Не в сети

#2 09.12.2017 11:40:05

Re: Как с помощью mailable отправить письмо не используя класс User

Код покажи пожалуйста.

Не в сети

#3 09.12.2017 11:50:25

Re: Как с помощью mailable отправить письмо не используя класс User

$email = explode(',', $email);
$keys =  collect(['email', 'name']);
$values = collect([trim($email[0]), trim($email[1])]);
$recipient = $keys->combine($values);
$template = 'App\Mail\\'.$this->template;
Mail::to($recipient)->send(new $template($this));

Не в сети

#4 09.12.2017 12:17:13

Re: Как с помощью mailable отправить письмо не используя класс User

Мне кажется, что формат данных неверный. Покажи результат dd($recipient) или дай $email строку с емэйлами, которую используешь до показанного кода.

Не в сети

#5 09.12.2017 12:56:14

Re: Как с помощью mailable отправить письмо не используя класс User

Передаваемая коллекция:
Collection {#310 ▼
  #items: array:2 [▼
    "email" => "email1@mail.com"
    "name" => "User1 Name"
  ]
}

Исходная строка: "email1@mail.com, User1 Name"

Не в сети

#6 09.12.2017 13:01:18

Re: Как с помощью mailable отправить письмо не используя класс User

В документации написано про коллекцию User. Для массива верный формат — это:

PHP
$recipient = [$recipient->toArray()];

Т.е. массив массивов, в которых есть ключи name и email:

PHP
[
    [
        
"email" => "email1@mail.com"
        "name" 
=> "User1 Name"
    
],
    [
        
"email" => "email2@mail.com"
        "name" 
=> "User2 Name"
    
]
]

Не в сети

#7 09.12.2017 13:13:48

Re: Как с помощью mailable отправить письмо не используя класс User

Спасибо! Все заработало)
Я новичек совсем, не только в Ларавел, а и ООП вообще)) В доках написано "The to method accepts an email address, a user instance, or a collection of users." вот и пробовал через коллекции, но почему-то про просто массив я совсем не подумал(..

А сейчас с PostgreSQL разбираюсь и сходу не удалось запустить phpPgAdmin, точнее не могу понять какой логин/пароль вводить для подключения к серверу уже внутри phpPgAdmin. Может тоже подскажете?))

Не в сети

#8 09.12.2017 13:16:59

Re: Как с помощью mailable отправить письмо не используя класс User

На счет phpPgAdmin не подскажу, извини. Создай новую тему и опиши проблему (точную ошибку и пр.), уверен, что кто-нибудь поможет.

Не в сети

#9 09.12.2017 13:19:16

Re: Как с помощью mailable отправить письмо не используя класс User

Там все просто оказалось) создал роль vagrant в постгресе (пользователь хомстед по умолчанию) и вошел. Только вот ошибка светится, но да, если не разберусь, спрошу отдельно.
Еще раз спасибо за помощь!

Не в сети

Подвал раздела