У меня есть правильный адрес электронной почты. Я повторил это. но когда я его отправлю, я получаю следующую ошибку:
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.