Я настраиваю экземпляр программного обеспечения службы поддержки osTicket, которое имеет открытый исходный код и написано на PHP. На моем сервере работает Apache2.4 на Ubuntu 16.04 с PHP7.1.
Теперь я пытаюсь подключить osTicket к Office 365 для получения входящих писем в службу поддержки, используя POP + SSL для подключения к Outlook.office365.com через порт 995 (как указано здесь https://support.office.com/en-us/article/office-365-urls-and-ip-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2?omkt=en-US&ui=en-US&rs=en-US&ad=US).
Моя проблема в том, что соединения занимают очень много времени, до нескольких минут. Но в конце концов им это удается (по крайней мере, некоторым).
Я отладил это с помощью telnet outlook.office365.com 995 и обнаружил, что попытки подключения выполняются с адресами IPv6. Когда одна попытка истекает, для следующей попытки автоматически принимается другой IP-адрес — обычно другой IPv6-адрес.
Однако, когда telnet (с непредсказуемыми интервалами) получает IPv4-адрес для подключения, я могу сразу приступить к командам HELO и POP3.
Поэтому похоже, что IPv6 является причиной медленных соединений внутри osTicket, но я не уверен, где можно решить эту проблему.
Можно ли установить IPv4 в качестве предпочтительного через PHP или curl (если он используется?), или Apache, или может ли какая-то команда уровня ОС решить проблему? Однако я не хочу отключать IPv6 для всего сервера.