正しいメールアドレスを持っています。エコーしましたが、送信すると次のエラーが表示されます。
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.");
スコープのために電子メール変数は空です。次のようなuse句を設定する必要があります。
Mail::send('emails.activation', $data, function($message) use ($email, $subject) {
$message->to($email)->subject($subject);
});
(PHPでSwiftMailerを使用しています)
誤って$ emailの文字列を送信していたときに、そのようなエラーが発生していました
$email = "[email protected] <Some One>";
送信するつもりだったとき
$email = Array("[email protected]"=>"Some One");
ログに使用している文字列化関数を誤って実行していたため、アレイの送信を再開するとエラーはなくなりました。
電子メールアドレス変数が空白でないことを確認してください。使用して確認
print_r($ variable_passed);
その理由は、送信されているメールアドレスが空白だからです。それらの空の括弧を参照してください?つまり、電子メールアドレスはswiftmailer関数の$ addressに入れられていません。
私は同じ問題に直面し、修正しました。以下のように書かれていることを確認してください。
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 !');
});
これは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>
----
$ email変数をメール送信機能に呼び出せない理由に対する答え。 $ user変数を呼び出す必要があります。次に、目的の変数を$ user-> variableとして記述できます。
ありがとうございました :)
Mail::send('emails.activation', $data, function($message){
$message->from('email@from', 'name');
$message->to($email)->subject($subject);
});
理由はわかりませんが、私の場合は、fromの情報を関数に入れればうまくいきます。
今日は非常によく似た問題があり、解決策はそのままでした。
$email = Array("Zaffar Saffee" => "[email protected]");
$schedule->command('cmd:mycmd')
->everyMinute()
->sendOutputTo("/home/forge/dev.mysite.com/storage/logs/cron.log")
->emailWrittenOutputTo($email);
It laravel 5.2ただし...
私の基本的な問題は、配列ではなく文字列を渡していたため、エラーが
->emailWrittenOutputTo('[email protected]'); // string, we need an array
問題は、.envファイルが正しく読み込まれず、MAIL_USERNAMEを使用していないことです。
.envファイルが電子メールアドレスを適切にロードしているかどうかを確認するには、この行をコントローラーに追加してページを更新します。
dd(env('MAIL_USERNAME')
Nullが表示される場合は、コマンドラインから次のコマンドを実行し、再試行してください。
php artisan cache:clear
これを試して。
Mail::send('emails.activation', $data, function($message) use($email,$subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
これらのエラーは、$ email変数が空の場合、またはメールが存在しない場合に発生します。既存のメールで試してください
データ変数($ email、$ subject)はグローバルなようです。また、関数内でグローバルを読み取ることはできません。これらをパラメーターとして渡すか(推奨される方法)、グローバルとして宣言する必要があります。
この方法を試してください:
Mail::send('emails.activation', $data, function($message, $email, $subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
私のために働いた唯一の解決策は、次のコードを変更することです
Mail::send('emails.activation', $data, function($message){
$message->from(env('MAIL_USERNAME'),'Test');
$message->to($email)->subject($subject);
});
[解決しよう] Neos/swiftmailer:指定されたメールボックスのアドレス[]はRFC 2822、3.6.2に準拠していません
/var/www/html/vendor/Packages/Libraries/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.phpの261行目の例外:指定されたメールボックスのアドレスは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.'
);
}
}