Если 'useFileTransport' => false, изменить на true, то будет написано, что сообщение отправлено, но оно не приходит, если изменить на false, то будет ошибка Swift_TransportException Connection could not be established with host PHP: <?php return [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=images', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ], 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'здесь адрес, на который должно прийдти письмо', 'username' => '', //это можно оставить пустым 'password' => '', 'port' => '587', //это можно оставить пустым 'encryption' => 'tls', ], ], ], ]; --- Добавлено --- и почему для хоста, многие пописывают smtp.mail.ru, я это никак понять не могу, у всех же свой адрес
@Dimon2x, ну смотри, насколько я вижу - ты показал конфиги. Конфиги описывают настройки, они ничего не отправляют. Следовательно, ты там можешь ничего не указывать в мейлере, если у тебя на сервере настроен почтовый сервер, либо работать по smtp с почтовым сервисом. Ну т.е. тут ты должен настройки к smtp прописать. Хост - smtp.mail.ru - это почтовый сервер мейла. Логин и пароль - это твои логин и пароль от почтового ящика на мейле, от имени кого ты будешь отсылать письма. А саму отправку письма производить в коде, создавая класс этого мейлера и используя его методы --- Добавлено --- PHP: Yii::$app->mailer->compose('contact/html') ->setFrom('from@domain.com') //вот тут желательно описать тот же ящик, что ты указывал в конфигах. Это предположение, но скорее всего дельное. ->setTo($form->email) //это кому ты отправляешь письмо ->setSubject($form->subject) //указываешь тему письма ->send(); // ну и отправляешь --- Добавлено --- 'useFileTransport'=>false, если я не ошибаюсь, как раз включает ошибки. Больше эта штука ни на что не способна. А, не, при включённом ещё письма не отправляются вроде, а в папку складываются
сделай лучше себе тогда ящик на мейле, например. В конфиге у тебя тогда будет: PHP: <?php return [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=images', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ], 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.mail.ru', 'username' => 'superdimon@mail.ru', //это можно оставить пустым 'password' => 'superpass', 'port' => '465', //это можно оставить пустым 'encryption' => 'tls', ], ], ], ]; --- Добавлено --- только я не помню, username указывается с доменом или без. Попробуй по-разному. Соответственно включи ошибки. Ну и в каком-нибудь контроллере попробуй выполнить PHP: Yii::$app->mailer->compose('contact/html') ->setFrom('superdimon@mail.ru') //вот тут желательно описать тот же ящик, что ты указывал в конфигах. Это предположение, но скорее всего дельное. ->setTo('kuda_otpravit@mail.ru') //это кому ты отправляешь письмо ->setSubject('Это офигительно прикольное письмо!') //указываешь тему письма ->send();
Такого бреда в конфиге точно не должно быть. Если SMTP-транспорт используется, то здесь как раз хост smtp сервера. В доках всё хорошо описано, не надо. У Yii одна из лучших документаций из тех, что я читал. Плюс здесь почитай, yii почту не свою использует, а вот это: https://swiftmailer.symfony.com/docs/introduction.html