Адрес в почтовом ящике [] не соответствует RFC 2822, 3.6.2. когда электронная почта находится в переменной
У меня правильный адрес электронной почты. Я повторил это, но когда я отправляю это, я получаю следующую ошибку:
Address in mailbox given [] does not comply with RFC 2822, 3.6.2.
Зачем? Я использую Laravel (Swift Mailer) для отправки электронной почты:
$email = [email protected]
и затем, когда я отправляю его, выдается ошибка.
Но если я напрямую использую строку, она отправляет ее.
Вот блок:
Mail::send('emails.activation', $data, function($message){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
Ответы
Ответ 1
Ваша переменная электронной почты пуста из-за области действия, вы должны установить условие использования, такое как:
Mail::send('emails.activation', $data, function($message) use ($email, $subject) {
$message->to($email)->subject($subject);
});
Ответ 2
(Я использую SwiftMailer в PHP)
Я получал ошибку, когда я случайно отправил строку для $email
$email = "[email protected]somewhere.com <Some One>";
Когда то, что я хотел отправить, было
$email = Array("[email protected]"=>"Some One");
Я случайно запускал его через функцию stringify, которую я использовал для ведения журнала, поэтому, как только я начал отправлять массив снова, ошибка исчезла.
Ответ 3
убедитесь, что ваша переменная адреса электронной почты не пуста.
проверьте с помощью
print_r ($ variable_passed);
Ответ 4
Я столкнулся с той же проблемой, и я исправил ее. Пожалуйста, убедитесь, что некоторые вещи написаны ниже:
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 !');
});
Это должен быть ваш email.activation
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- > variable
Спасибо:)
Ответ 5
Mail::send('emails.activation', $data, function($message){
$message->from('[email protected]', 'name');
$message->to($email)->subject($subject);
});
Я не знаю, почему, но в моем случае я помещаю информацию из функции в функцию, и она работает нормально.
Ответ 6
Это потому, что отправляемый адрес электронной почты пуст. см. эти пустые скобки? это означает, что адрес электронной почты не помещается в $address функции swiftmailer.
Ответ 7
Переменные данных ($ email, $subject) кажутся глобальными. И глобалы не могут быть прочитаны внутри функций. Вы должны передать их как параметры (рекомендуемый путь) или объявить их глобальными.
Попробуйте следующим образом:
Mail::send('emails.activation', $data, function($message, $email, $subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
Ответ 8
Эта ошибка возникает, когда переменная $email пуста или иногда, когда почта не существует, попробуйте с существующей почтой
Ответ 9
Попробуйте это.
Mail::send('emails.activation', $data, function($message) use($email,$subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
Ответ 10
У меня была очень похожая проблема сегодня, и решение было как есть.
$email = Array("Zaffar Saffee" => "[email protected]");
$schedule->command('cmd:mycmd')
->everyMinute()
->sendOutputTo("/home/forge/dev.mysite.com/storage/logs/cron.log")
->emailWrittenOutputTo($email);
Это laravel 5.2, хотя...
Моя основная проблема заключалась в том, что я передавал строку вместо массива, поэтому ошибка была
->emailWrittenOutputTo('[email protected]'); // string, we need an array
Ответ 11
[Решено] Neos/swiftmailer: адрес в указанном почтовом ящике [] не соответствует RFC 2822, 3.6.2
Исключение в строке 261 файла /var/www/html/vendor/Packages/Libraries/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php: Адрес в указанном почтовом ящике [] не соответствует RFC 2822, 3.6 0,2.
private function _assertValidAddress($address)
{
if (!preg_match('/^'.$this->getGrammar()->getDefinition('addr-spec').'$/D',
$address)) {
throw new Swift_RfcComplianceException(
'Address in mailbox given ['.$address.
'] does not comply with RFC 2822, 3.6.2.'
);
}
}
https://discuss.neos.io/t/solved-neos-swiftmailer-address-in-mailbox-given-does-not-comply-with-rfc-2822-3-6-2/3012
Ответ 12
Ваша проблема может заключаться в том, что файл .env загружается неправильно и использует MAIL_USERNAME.
Чтобы проверить, загружает ли ваш файл .env адрес электронной почты, добавьте эту строку в ваш контроллер и обновите страницу.
dd(env('MAIL_USERNAME')
Если он отображается как null, попробуйте выполнить следующую команду из командной строки и повторите попытку.
php artisan cache:clear