Ошибка почтовой программы: ошибка SMTP: не удалось подключиться к узлу SMTP - PullRequest
0 голосов
/ 01 октября 2019

Как устранить эту ошибку? Я делаю все возможное, чтобы решить эту проблему, но она не может решить. Вот мой код .env файла

MAIL_DRIVER=smtp
MAIL_HOST=fluorine.cloudhosting.co.uk
MAIL_PORT=465
MAIL_USERNAME=contacts@cleansafeltd.com
MAIL_PASSWORD=Hggjgjgghv123
MAIL_ENCRYPTION=ssl

Вот код mail.php.

<?php

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'fluorine.cloudhosting.co.uk'),
    'port' => env('MAIL_PORT', 465),
    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'contacts@cleansafeltd.com'),
        'name' => env('MAIL_FROM_NAME', 'Contact'),
    ],
    'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'markdown' => [
        'theme' => 'default',
        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],
];

Вот mailController

public function sendMail($to_email, $template_id, $users_insertId = 0) {
    set_time_limit(0);
    $mail = new PHPMailer(true);
    $mail->IsSendmail();
    $mail->IsSMTP(true);
    $mail->Host = "fluorine.cloudhosting.co.uk";
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Username = "website@cleansafeltd.com";
    $mail->Password = "Star9000!";
    $mail->Port = "465";
    $mail->IsHTML(true);
}

Я делаю всетонкий с tls или портом 587, но не решен.

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Используя ваши учетные данные (кстати, вы не должны публиковать свой пароль в общественных местах, вам лучше сменить его), я смог отправить себе письмо, используя следующий код

Mail::to('mymail@domain')->send(new \App\Mail\TestMail);

\App\Mail\TestMail - это класс Mailable, определенный следующим образом:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class TestMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    // Optional params are commented out. 
    // replyTo changes the address one gets when clicking the reply button
    public function build()
    {
        return $this->from(env('MAIL_USERNAME'), 'An alias name')
                    // ->to('mail@domain', 'alias name for recipient')
                    // ->cc('mail2@domain', 'alias name for cc')
                    // ->bcc('mail3@domain', 'alias name for bcc')
                    // ->replyTo('mail4@domain', 'alias for replyTo')
                    ->subject('This is a test')
                    ->view('mails.sample_mail'); // This is a laravel view.
    }
}
0 голосов
/ 01 октября 2019

Попробуйте это:

  1. Настройка учетной записи Gmail

    • Перейти в настройки -> Пересылка и POP / IMAP

          - Check -> POP download: Enable POP for all mail (even mail that's already been downloaded)
      
        - Check -> IMAP access: Enable IMAP
      
        - Save
      
      • Перейдите в учетную запись Google -> безопасность -> Менее безопасный доступ к приложению

        • Установите на вместо выключенного
  2. Установите это в свой файл .env

    MAIL_DRIVER = smtp

    MAIL_HOST = smtp.googlemail.com

    MAIL_PORT = 465

    MAIL_USERNAME = ваше имя пользователя электронной почты

    MAIL_PASSWORD = ваш пароль электронной почты

    MAIL_ENCRYPTION = ssl

    MAIL_FROM_ADDRESS = ваш адрес электронной почтыадрес

    MAIL_FROM_NAME = Ваше имя электронной почты

  3. Теперь вы можете отправлять электронную почту с помощью учетной записи SMTP Gmail

...