Я использую Codeigniter 3 и имею простую форму контакта на своем веб-сайте. Эта контактная форма отлично работает на моей локальной среде XAMPP, но не на моем общем веб-хостинге (BT).
Я не могу понять, в чем проблема, я был в контакте с их поддержкой и, видимо, если учетная запись электронной почты может отправлять и получать электронную почту через почтовые клиенты (что она может), они не предлагают никакой дополнительной поддержки: /
Я могу войти в Office365 для отправки и получения писем с помощью этой учетной записи. Настройки smpt в Office365:
Server name: smtp.office365.com Port: 587 Encryption method: STARTTLS
Мой текущий код выглядит следующим образом.
$config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp.office365.com'; // also tried tls://smtp.office365.com $config['smtp_port'] = '587'; $config['smtp_user'] = 'MyEmail@btconnect.com'; $config['smtp_pass'] = 'MyPass'; $config['smtp_crypto'] = 'tls'; $config['mailtype'] = 'html'; $config['wordwrap'] = TRUE; $config['charset'] = 'iso-8859-1'; $config['newline'] = "\r\n";
В localhost отправляется электронное письмо, и никаких проблем нет. На веб-хосте Live я получаю следующую ошибку;
Сообщение: fsockopen (): не удалось подключиться к smtp.office365.com:587 (Время ожидания подключения)
Я читал, что проблема может быть связана с тем, что OpenSSL не включен, однако веб-хост подтвердил, что он включен. Я также проверил загруженные расширения, используя следующий код;
echo "<pre>"; print_r(get_loaded_extensions()); echo "</pre>";
Это возвращается;
Array ( [0] => Core [1] => date [2] => ereg [3] => libxml [4] => openssl [5] => pcre etc etc )
Я проверил, что я могу подключиться к серверу smtp, используя следующий код;
$fp = fsockopen('tcp://smtp.office365.com', 587, $errno, $errstr, 10); echo fgets($fp, 128); var_dump($fp, $errno, $errstr); fclose($fp);
На моем localhost я получаю следующее сообщение;
220 VI1PR0602CA0001.outlook.office365.com Microsoft ESMTP MAIL Сервис готов в понедельник, 19 июня 2017 10:19:10 +0000 ресурс (55) типа (потока) int (0) string (0) ""
На реальном сервере я получаю это;
Сообщение: fsockopen (): невозможно подключиться к tcp: //smtp.office365.com: 587 (время ожидания подключения)
Я пробовал Gmail smtp, снова это работает локально, но не на удаленном веб-хосте.
Есть ли что-нибудь еще, что я должен попробовать, или попросить моего веб-хоста проверить? В настоящее время у меня нет идей.
Любая помощь приветствуется.
Я не знаю, будет ли это работать в вашем случае, но у меня такая же проблема. он работает над моим локальным развитием с использованием усадьбы, но в hostgator его ошибкой. что я сделал, чтобы исправить это, я меняю значение протокола на почту.
попробуйте изменить свой код:
$config['protocol'] = 'smtp';
к этому:
$config['protocol'] = 'mail';