У меня есть проект CodeIgniter, запущенный на хосте cPanel / centOS. Класс электронной почты CodeIgniter (работает на phpMailer v 6.1.4 ) не работает на этом хосте, но работает локально и в других средах.
Когда мы запускаем приведенный ниже код на нашем хосте на основе cPanel, мы получаем непонятную ошибку от функции отладки PHPMailer:
Обнаружена следующая ошибка SMTP: + �W��TV ���: ����; �D���q�� Невозможно отправить электронное письмо с использованием PHP SMTP. Возможно, ваш сервер не настроен на отправку почты с использованием этого метода.
Странно то, что все работало до двух дней go, и ничего не изменилось (в мои знания) на уровне кода.
- Когда мы проверяем журналы ошибок, мы видим следующее:
Серьезность: Предупреждение -> stream_socket_enable_crypto (): Сертификат пэра CN = *.mywebhost.com' did not match expected CN=
smtp.sendgrid. net '/home/myenv/public_html/system/libraries/Email.php
Вышесказанное заставляет меня верить, что:
- Хост использует какую-то конфигурацию (например, «FKA SMTP Tweak»), не позволяющую нам подключиться к SendGrid. (Я включил / выключил это, но ничего не показалось).
- Есть какая-то проблема с SSL
Я пытался диагностировать наш хост , но они до сих пор были бесполезны, поэтому любые идеи будут приветствоваться и заранее благодарны!
Пожалуйста, дайте нам знать, если мы сможем предоставить больше информации, и заранее благодарим вас за сотрудничество.
$config = array();
$config['useragent'] = 'PHPMailer';
$config['protocol'] = 'smtp';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['smtp_host'] = 'smtp.sendgrid.net';
$config['smtp_user'] = 'USER';
$config['smtp_pass'] = 'PASSWORD';
$config['smtp_port'] = 587;
$config['smtp_timeout'] = 5;
$config['smtp_crypto'] = 'tls';
$config['wordwrap'] = true;
$config['wrapchars'] = 76;
$config['mailtype'] = 'html';
$config['charset'] = 'iso-8859-1';
$config['validate'] = true;
$config['priority'] = 3;
$config['crlf'] = "\n";
$config['newline'] = "\n";
$config['bcc_batch_mode'] = false;
$config['bcc_batch_size'] = 200;
$this->load->library('email');
$this->email->initialize($config);
$this->email->from('my@email.com', 'Your Name');
$this->email->to('my@email.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
show_error($this->email->print_debugger());