Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.07.2016 23:36:45

Дмитрий Девелопер

Проблема с отправкой mail

Не могу понять почему не отправляются письма на 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://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=post_database
DB_USERNAME=root
DB_PASSWORD=1234

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_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';

    }
}

#2 17.07.2016 00:35:29

Re: Проблема с отправкой mail

Метод аутентикации счас у гмыла OAuth2
Я себе из почтовика сделал сателлит яндекса (тоесть релей к яндексу) и больше не мучаю себя.
Настройка оч сложная и если решусь написать статью, то аве мне, но чёт сомневаюсь.

Не в сети

#3 17.07.2016 00:39:07

Re: Проблема с отправкой mail

варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?

Не в сети

#4 18.07.2016 17:32:33

Дмитрий Девелопер

Re: Проблема с отправкой mail

hzone пишет:

Метод аутентикации счас у гмыла OAuth2
Я себе из почтовика сделал сателлит яндекса (тоесть релей к яндексу) и больше не мучаю себя.
Настройка оч сложная и если решусь написать статью, то аве мне, но чёт сомневаюсь.

А почему тогда с помощью библиотеки PHPMailer письма отправляются?

#5 18.07.2016 17:33:47

Дмитрий Девелопер

Re: Проблема с отправкой mail

hzone пишет:

варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?

А как отправить сообщения с localhost. C помощью PHPMailer это получается

#6 18.07.2016 17:38:48

Re: Проблема с отправкой mail

Дмитрий Девелопер пишет:
hzone пишет:

варианты решения:
а) конверсия твоего почтового сервера (локального) в сателлит/релей - сложно, но как стальной слиток
б) передача управления доменом яндексу (https://pdd.yandex.ru) и работа через тот же smtp но с яндексом
в) если хостинг и нет рута, то тереби хостера
г) другие варианты?

А как отправить сообщения с localhost. C помощью PHPMailer это получается

А как отправляет сообщение PHPMailer ?

Не в сети

#7 18.07.2016 17:51:07

Дмитрий Девелопер

Re: Проблема с отправкой mail

hzone пишет:
Дмитрий Девелопер пишет:
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 выдает ту же ошибку.

#8 18.07.2016 17:52:04

Дмитрий Девелопер

Re: Проблема с отправкой 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()

#9 18.07.2016 17:56:19

Дмитрий Девелопер

Re: Проблема с отправкой mail

Есть ли в стандартном функционале аналог этой команды?

$mail->SMTPAuth=true;

Может в этом причина?

#10 18.07.2016 18:01:45

Re: Проблема с отправкой mail

чёт мутно...
сначала вопрос про гугл, а счас мыл.сру....

Не в сети

#11 18.07.2016 18:01:59

Re: Проблема с отправкой mail

ты что-то одно заставь работать

Не в сети

#12 18.07.2016 18:03:09

Re: Проблема с отправкой mail

и ещё.
From не может быть отличным от Host
тебе релееть никто не позволит

Не в сети

#13 18.07.2016 18:05:42

Re: Проблема с отправкой mail

в целом усё не понятно, тут сначала админ должен подтвердить что всё настроено как то необходимо программеру.

Не в сети

#14 18.07.2016 19:15:31

Дмитрий Девелопер

Re: Проблема с отправкой mail

Дело не в том mail используется или gmail. Просто библиотека PHPMailer отправляет сообщения и с помощью ящика mail и с помощью gmail, а библиотека Mail идущая в комплекте с Laravel вы дает данную ошибку и сообщения не отправляет. Я не могу понять - почему так. Домена у меня нет. Я отправляю со своего компа.

#15 18.07.2016 19:51:26

Re: Проблема с отправкой mail

ну явно же в методе аутентикации.
я говорил уже варианты решения.
плюсую вариант - установить в лару phpmailer

Не в сети

#16 18.07.2016 21:16:36

Дмитрий Девелопер

Re: Проблема с отправкой mail

hzone пишет:

ну явно же в методе аутентикации.
я говорил уже варианты решения.
плюсую вариант - установить в лару phpmailer

Я так и сделал, но это не совсем красиво... В итоге получилось, что PhpMiailer работает из коробки, а стандартный функционал требует танцов с бубном :-(

#17 18.07.2016 23:29:30

Re: Проблема с отправкой mail

придётся потерпеть. "эти нововведения" с аутентикацией произошли этой весной, а предупреждения от яндекса/гмыла сыпались с начала зимы. про мыл не знаю, не пользуюсь.

Изменено hzone (18.07.2016 23:30:15)

Не в сети

#18 20.07.2016 17:58:19

Re: Проблема с отправкой mail

Попробовал обратится с 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();

Не в сети

#19 31.07.2016 11:58:32

Re: Проблема с отправкой mail

Нашел оптимальное решение проблемы - использования платного мыла!

Не в сети

#20 31.07.2016 15:11:26

Re: Проблема с отправкой mail

что, вот, пользователи творят :-)
- бесплатно не могут жить :-)))))))))))))

Не в сети

Подвал раздела