Intereting Posts
Как получить контактное лицо по контактной форме 7 PHP GD: изображение невозможно отобразить, поскольку оно содержит ошибки В PHP, как отображать содержимое массива в таблице Получить множество значений с помощью ajax из get in php Имя сервера PHP из командной строки Удалить текст за пределами скобок Как обеспечить дополнительную безопасность для проверки источника запроса Могу ли я использовать классы Magento в своем проекте? Когда мне следует возвращать true / false AJAX, и когда я должен эхо «true» / «false», Как изменить путь к php.ini в версии PHP CLI Нужна помощь с моей функцией PHP пейджера теперь, когда я использую mod-rewrite PHP-конструкторы и статические функции Несколько страниц переадресации, которые отображали сообщение раньше, является ли это лучшим методом? загрузите большой файл размером от 1 до 2 ГБ с помощью загрузки файла jQuery – blueimp (основанный на Ajax) php / yii, который показывает ошибку в браузере Firefox строка кодов в php

Как решить медленную отправку почты в CodeIgniter?

Я использую почтовый класс codeIgniter по умолчанию, который очень медленный для меня, чтобы отправить электронное письмо, и мне требуется до 3 секунд от начала до конца. Могу ли я сделать что-то, чтобы заставить пользователя думать, что это быстрее. Я знаю, что отправка электронной почты требует времени, но могу ли я сначала показать результат пользователю и отправить позднее или что-то другое обходное решение? Благодарю.

Это будет не тот класс, который будет медленным, это будет почтовый сервер SMTP, с которым вы пытаетесь подключиться, и отправляет электронное письмо, которое делает задержку страницы.

Предполагая, что это какая-то форма, вы можете отправить ее с помощью AJAX и получить скрипт отправки по электронной почте. В качестве альтернативы вы можете попробовать использовать PHP-почту, а не SMTP.

Я никогда не видел проблемы с производительностью, связанной с функцией php mail (), которая не была проблемой в MTA (и, следовательно, не имеет ничего общего с PHP).

SMTP-система (MTA) предназначена для управления очередями электронной почты. Если он не успевает мгновенно размещать сообщения, он не выполняет свою основную задачу.

Но вы не указали информацию о том, какую MTA вы используете, как она настроена, какая ОС работает на PHP и как настроен почтовый интерфейс на PHP.

Добавьте к этому тот факт, что стандартный класс почтового класса codeigniter может использовать функцию PHP mail () или прямой вызов ОС для почтовой программы SMTP или сетевой вызов на порт / сервер SMTP, не зная, что этот код делает довольно сложный чтобы понять, в чем проблема.

Убедитесь, что ваш веб-сервер может быстро разрешить хост SMTP (если он используется), если вы используете соединение SMTP-порта из вашего кода. В противном случае это проблема с MTA.

Прежде всего создайте настраиваемый файл конфигурации

email.php внутри приложения / config

В моем случае я отправляю электронную почту через идентификатор электронной почты, так что вот мой email.php

$config = Array( 'protocol' => 'smtp', 'smtp_host' => 'SMTP_HOST_NAME', 'smtp_port' => 25, 'smtp_user' => 'SMTP_USER_NAME', // change it to yours 'smtp_pass' => 'SMTP_PASSWORD', // change it to yours 'mailtype' => 'html', 'charset' => 'iso-8859-1', 'wordwrap' => TRUE ); 

Затем убедитесь, что эта конфигурация загружена автоматически. Откройте свой Autoload.php внутри приложения / config и напишите

 $autoload['config'] = array('email'); 

Теперь, когда вы создаете контроллер, который имеет много методов, используя адрес электронной почты library.use parent contruct

 function __construct() { parent::__construct(); $this->load->library('email', $config); } 

И тогда вы можете легко отправлять письма

 $this->email->from('info@example.net', 'Account'); $this->email->to('johndoe@example.com'); $this->email->cc('johndoe@example.com'); $this->email->bcc('johndoe@example.com'); $this->email->subject('Account Confirmation'); $message = "any message body you want to send"; $this->email->message($message); $this->email->send(); 

Это сокращает 2-3 секунды при отправке писем через электронную библиотеку CI. благодаря