Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Не могу понять почему не отправляются письма на e-mail с помощью стандартного функционала Mail. C помощью PHPMailer письма отправляются. Доступ к мы ненадежных приложений разрешил. Пожалуйста помогите, уже несколько дней ломаю голову.
При отправке выводится такая ошибка:
Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "530", with message "530-5.5.1 Authentication Required. Learn more at
530 5.5.1 https://support.google.com/mail/answer/14257 83sm2997771ljj.14 - gsmtp
"
Код:
.env:
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:oH91ckEt9BPGwQk/fxO5RjR0T+O1/FXLt2FY7lnCP+M=
APP_URL=http://localhostDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=post_database
DB_USERNAME=root
DB_PASSWORD=1234CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=syncREDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=novogodniibal2014@gmail.com
MAIL_PASSWORD=мой пароль от мыла
MAIL_ENCRYPTION=ssl
mail.php:
<?php
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 465),
'from' => ['address' => 'novogodniibal2014@gmail.com', 'name' => "Валерий Вольнов"],
'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
'username' => env('novogodniibal2014@gmail.com'),
'password' => env('мой пароль от мыла'),
'sendmail' => '/usr/sbin/sendmail -bs',
'auth' => env('SMTPAuth','true'),
'pretend' => false,
];
Controller:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesResources;
use Illuminate\Http\Request;
use App\User;
use Mail;
use Validator;
use Illuminate\Routing;
use PHPMailer;
class Controller extends BaseController
{
use AuthorizesRequests, AuthorizesResources, DispatchesJobs, ValidatesRequests;
public function test(){
Mail::send("message", array('key' => 'value'), function($message)
{
$message->to('shok-dimon@mail.ru', '')->subject('hi');
$message->from('novogodniibal2014@gmail.com', 'Your Application');
});
return 'ok';}
}
Метод аутентикации счас у гмыла OAuth2
Я себе из почтовика сделал сателлит яндекса (тоесть релей к яндексу) и больше не мучаю себя.
Настройка оч сложная и если решусь написать статью, то аве мне, но чёт сомневаюсь.
Не в сети
варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?
Не в сети
Метод аутентикации счас у гмыла OAuth2
Я себе из почтовика сделал сателлит яндекса (тоесть релей к яндексу) и больше не мучаю себя.
Настройка оч сложная и если решусь написать статью, то аве мне, но чёт сомневаюсь.
А почему тогда с помощью библиотеки PHPMailer письма отправляются?
варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?
А как отправить сообщения с localhost. C помощью PHPMailer это получается
hzone пишет:варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?А как отправить сообщения с localhost. C помощью PHPMailer это получается
А как отправляет сообщение PHPMailer ?
Не в сети
Дмитрий Девелопер пишет:hzone пишет:варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?А как отправить сообщения с localhost. C помощью PHPMailer это получается
А как отправляет сообщение PHPMailer ?
Вот код:
$mail= new PHPMailer;
$mail->isSMTP();
$mail->Host='smtp.mail.ru';
$mail->SMTPAuth=true;
$mail->Username="shok-dimon";
$mail->Password="пароль от мыла";
$mail->SMTPSecure='ssl';
$mail->Port='465';
$mail->From="novogodniibal2014@gmail.com";
$mail->addAddress('shok-dimon@mail.ru');
$mail->Subject="www";
$mail->Body="Hello world";
$mail->send()
Сообщение приходит и никакой ошибки не возникает. А вот стандартный Mail выдает ту же ошибку.
$mail->isSMTP();
$mail->Host='smtp.mail.ru';
$mail->SMTPAuth=true;
$mail->Username="novogodniibal2014";
$mail->Password="пароль от мыла";
$mail->SMTPSecure='ssl';
$mail->Port='465';
$mail->From="novogodniibal2014@gmail.com";
$mail->addAddress('shok-dimon@mail.ru');
$mail->Subject="www";
$mail->Body="Hello world";
$mail->send()
Есть ли в стандартном функционале аналог этой команды?
$mail->SMTPAuth=true;
Может в этом причина?
чёт мутно...
сначала вопрос про гугл, а счас мыл.сру....
Не в сети
ты что-то одно заставь работать
Не в сети
и ещё.
From не может быть отличным от Host
тебе релееть никто не позволит
Не в сети
в целом усё не понятно, тут сначала админ должен подтвердить что всё настроено как то необходимо программеру.
Не в сети
Дело не в том mail используется или gmail. Просто библиотека PHPMailer отправляет сообщения и с помощью ящика mail и с помощью gmail, а библиотека Mail идущая в комплекте с Laravel вы дает данную ошибку и сообщения не отправляет. Я не могу понять - почему так. Домена у меня нет. Я отправляю со своего компа.
ну явно же в методе аутентикации.
я говорил уже варианты решения.
плюсую вариант - установить в лару phpmailer
Не в сети
ну явно же в методе аутентикации.
я говорил уже варианты решения.
плюсую вариант - установить в лару phpmailer
Я так и сделал, но это не совсем красиво... В итоге получилось, что PhpMiailer работает из коробки, а стандартный функционал требует танцов с бубном :-(
придётся потерпеть. "эти нововведения" с аутентикацией произошли этой весной, а предупреждения от яндекса/гмыла сыпались с начала зимы. про мыл не знаю, не пользуюсь.
Изменено hzone (18.07.2016 23:30:15)
Не в сети
Попробовал обратится с SwiftMailer напрямую и сообщение пришло. А с помощью "простой интерфейса" Mail выдается все та же ошибка. Из-за чего это может быть, ведь Mail использует ту же самую библиотеку SwiftMailer?
Вот рабочий код:
$mailer=Swift_Mailer::newInstance($transport);
$transport= Swift_SmtpTransport::newInstance("smtp.yandex.ru",465,"ssl")
->setUsername("shokdimongerasimov@yandex.ru")->setPassword("пароль от мыла");$message=Swift_Message::newInstance('title')->setFrom("shokdimongerasimov@yandex.ru")
->setTo("shok-dimon@mail.ru")->setBody('body');
$res=$mailer->send($message);
$mailer->getTransport()->stop();
Не в сети
Нашел оптимальное решение проблемы - использования платного мыла!
Не в сети
что, вот, пользователи творят :-)
- бесплатно не могут жить :-)))))))))))))
Не в сети
Страницы 1