J'ai une adresse email correcte. Je l'ai fait écho. mais quand je l'envoie, j'obtiens l'erreur suivante:
Address in mailbox given [] does not comply with RFC 2822, 3.6.2.
Pourquoi? J'utilise laravel (Swift mailer) pour envoyer un email.
$ email = [email protected]
et puis quand j'envoie ça, l'erreur est renvoyée.
Mais si j'utilise directement la chaîne, elle l'envoie.
Voici le bloc:
Mail::send('emails.activation', $data, function($message){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
Votre variable email est vide en raison de la portée, vous devez définir une clause d'utilisation telle que:
Mail::send('emails.activation', $data, function($message) use ($email) {
$message->to($email)->subject($subject);
});
(J'utilise SwiftMailer en PHP)
Je recevais une telle erreur quand j'envoyais accidentellement une chaîne pour $ email
$email = "[email protected] <Some One>";
Quand ce que je voulais envoyer était
$email = Array("[email protected]"=>"Some One");
J'exécutais accidentellement cette tâche via une fonction stringify que j'utilisais pour la journalisation. Ainsi, une fois que j'ai commencé à envoyer le tableau à nouveau, l'erreur a disparu.
assurez-vous que votre variable d'adresse e-mail n'est pas vide. vérifier en utilisant
print_r ($ variable_passed);
C'est parce que l'adresse e-mail qui est envoyée est vide. voir ces crochets vides? cela signifie que l'adresse email n'est pas mise dans l'adresse $ de la fonction swiftmailer.
J'ai rencontré le même problème et j'ai corrigé. S'il vous plaît assurez-vous que certaines choses comme écrit ci-dessous:
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 !');
});
Cela devrait être votre emails.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>
----
La réponse à votre pourquoi vous ne pouvez pas appeler la variable $ email dans votre fonction d'envoi de courrier. Vous devez appeler la variable $ user, puis vous pouvez écrire votre variable souhaitée sous la forme $ user-> variable
Je vous remercie :)
Mail::send('emails.activation', $data, function($message){
$message->from('email@from', 'name');
$message->to($email)->subject($subject);
});
Je ne sais pas pourquoi, mais dans mon cas, j'ai mis les informations de de dans la fonction et tout fonctionne bien.
J'ai eu un problème très similaire aujourd'hui et la solution était telle qu'elle est ..
$email = Array("Zaffar Saffee" => "[email protected]");
$schedule->command('cmd:mycmd')
->everyMinute()
->sendOutputTo("/home/forge/dev.mysite.com/storage/logs/cron.log")
->emailWrittenOutputTo($email);
Il laravel 5.2 si ...
mon problème de base était, je passais chaîne au lieu de tableau donc, erreur était
->emailWrittenOutputTo('[email protected]'); // string, we need an array
Votre problème peut être que le fichier .env ne se charge pas correctement et n’utilise pas MAIL_USERNAME.
Pour vérifier si votre fichier .env charge correctement l'adresse électronique, ajoutez cette ligne à votre contrôleur et actualisez la page.
dd(env('MAIL_USERNAME')
Si NULL apparaît, essayez d'exécuter la commande suivante à partir de la ligne de commande, puis essayez à nouveau.
php artisan cache:clear
Essaye ça.
Mail::send('emails.activation', $data, function($message) use($email,$subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
Ces erreurs se produisent lorsque la variable $ email est vide ou parfois lorsque le mail n’existe pas, essayez avec un mail existant
Les variables de données ($ email, $ sujet) semblent être globales. Et les globals ne peuvent pas être lus à l'intérieur des fonctions. Vous devez les transmettre en tant que paramètres (méthode recommandée) ou les déclarer en tant que paramètres globaux.
Essayez de cette façon:
Mail::send('emails.activation', $data, function($message, $email, $subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
[Résolu] Neos/swiftmailer: l'adresse dans la boîte aux lettres donnée [] n'est pas conforme à la RFC 2822, 3.6.2
Exception à la ligne 261 de /var/www/html/vendor/Packages/Libraries/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php: l'adresse dans la boîte aux lettres donnée [] n'est pas conforme à la RFC 2822, 3.6 .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.'
);
}
}