Адрес в почтовом ящике не соответствует RFC 2822, 3.6.2. когда электронная почта находится в переменной

У меня есть правильный адрес электронной почты. Я повторил это. но когда я его отправлю, я получаю следующую ошибку:

Address in mailbox given [] does not comply with RFC 2822, 3.6.2. 

Зачем? Я использую laravel (быстрая почтовая рассылка) для отправки электронной почты.

$ email = email@address.com

а затем, когда я отправляю, это ошибка.

Но если я напрямую использую строку, она отправляет ее.

Вот блок:

  Mail::send('emails.activation', $data, function($message){ $message->to($email)->subject($subject); }); ->with('title', "Registered Successfully."); 

Ваша электронная почта пуста из-за области, вы должны установить условие использования, такое как:

 Mail::send('emails.activation', $data, function($message) use ($email) { $message->to($email)->subject($subject); }); 

Я столкнулся с той же проблемой, и я исправил ее. Пожалуйста, убедитесь, что некоторые вещи, как написано ниже:

  Mail::send('emails.auth.activate', array('link'=> URL::route('account-activate', $code),'username'=>$user->username),function($message) use ($user) { $message->to($user->email , $user->username)->subject('Active your account !'); }); 

Это должно быть ваша электронная почта.

  Hello {{ $username }} , <br> <br> <br> We have created your account ! Awesome ! Please activate by clicking the following link <br> <br> <br> ----- <br> {{ $link }} <br> <br> <br> ---- 

Ответ на вопрос, почему вы не можете перечислить переменную $ email в функцию отправки почты. Вам нужно вызвать переменную $ user, тогда вы можете написать нужную переменную в виде переменной $ user->

Спасибо 🙂

(Я использую SwiftMailer в PHP)

Я получал ошибку, когда я случайно отправил строку для $ email

 $email = "someone@somewhere.com <Some One>"; 

Когда то, что я хотел отправить, было

 $email = Array("someone@somewhere.com"=>"Some One"); 

Я случайно запускал его через функцию stringify, которую я использовал для ведения журнала, поэтому, как только я начал отправлять массив снова, ошибка исчезла.

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

print_r ($ variable_passed);

Переменные данных ($ email, $ subject) кажутся глобальными. И глобалы не могут быть прочитаны внутри функций. Вы должны передать их как параметры (рекомендуемый путь) или объявить их глобальными.

Попробуйте так:

 Mail::send('emails.activation', $data, function($message, $email, $subject){ $message->to($email)->subject($subject); }); ->with('title', "Registered Successfully."); 

Эта ошибка возникает, когда переменная $ email пуста или иногда, когда почта не существует, попробуйте с существующей почтой

Попробуй это.

 Mail::send('emails.activation', $data, function($message) use($email,$subject){ $message->to($email)->subject($subject); }); ->with('title', "Registered Successfully."); 
  Mail::send('emails.activation', $data, function($message){ $message->from('email@from', 'name'); $message->to($email)->subject($subject); }); 

Я не знаю, почему, но в моем случае я помещаю информацию из этой функции, и она работает нормально.

Сегодня у меня была очень похожая проблема, и решение было как есть.

 $email = Array("Zaffar Saffee" => "myemail@gmail.com"); $schedule->command('cmd:mycmd') ->everyMinute() ->sendOutputTo("/home/forge/dev.mysite.com/storage/logs/cron.log") ->emailWrittenOutputTo($email); 

Это laravel 5.2, хотя …

моя основная проблема заключалась в том, что я передавал строку вместо массива, поэтому ошибка была

 ->emailWrittenOutputTo('mymail@gmail.com'); // string, we need an array 

Это потому, что отправляемый адрес электронной почты пуст. см. эти пустые скобки? это означает, что адрес электронной почты не помещается в $ address функции swiftmailer.