Неизвестная задержка на время выполнения PHP только для одного пользователя [дубликат]

cmd.exe не будет запускать скрипт из памяти вашего процесса. Опции, которые кажутся мне наиболее очевидными:

  1. Расслабьте ограничение, которое останавливает извлечение скрипта во временный файл.
  2. Сжатие вашего сценария в одну строку и использование cmd.exe / C , чтобы выполнить его. Вам нужно будет использовать разделитель команд & amp; & amp; .
  3. Напишите свой собственный интерпретатор командных команд.
  4. Используйте другой язык сценариев.

Варианты 3 и 4 на самом деле не очень привлекательны! Вариант 1 выглядит довольно хорошо для меня, но я не знаю, что приводит к вашим ограничениям.

7
задан Seán Healy 20 August 2013 в 01:47
поделиться

2 ответа

Поведение, которое вы видите, не имеет ничего общего с функцией PHP mail(). Вместо этого это почтовый сервер SMTP, от которого PHP передает сообщение, что требует времени для доставки. Эта услуга известна как агент передачи почты или MTA .

Существует множество потенциальных причин, по которым он не будет доставлен немедленно. Вероятно, задержка, которую вы видите, - greylisting на принимающем сервере, что означает, что принимающий почтовый сервер отказывается принимать сообщение до тех пор, пока сервер отправки (который ваш PHP-скрипт не передал) пытается несколько раз повторно отправить Это. Хорошо выполненные MTA будут повторять попытки неудачной попытки отправки, но спам-серверы часто не делают этого, что делает этот простой, но эффективный метод сокращения спама.

Это может быть даже просто, как длинная очередь сообщений на SMTP-сервер, ожидающий отправки, в соответствии с которым ваши ждут в очереди. (Действительно, greylisting более вероятно, хотя)

Самое главное помнить, что электронная почта not предназначена для мгновенного и, следовательно, никогда не гарантируется мгновенной. В последнее десятилетие или около того мы привыкли по большому счету отправлять электронную почту очень быстро, но вы никогда не сможете обещать быструю доставку.

13
ответ дан Michael Berkowski 17 August 2018 в 08:40
поделиться

Как сказал @Michael Berkowski, это не сама функция mail (). mail () работает путем вызова ваших систем, встроенных в программное обеспечение курьера SMTP. Затем он автоматически согласовывает разговор с принимающей системой, выполняя необходимые поисковые запросы DNS, чтобы найти правильный почтовый сервер. Затем сервер забирает ваше сообщение, проверяет вашу систему с помощью серого списка и обратного поиска DNS, сканирует его и запускает его против собственной защиты от нежелательной почты / вируса, а затем, наконец, доставляет. Кроме того, многие почтовые серверы задерживают неизвестные серверы отправки, чтобы предотвратить использование DOS'-сайтов и рыбаков.

5
ответ дан CP510 17 August 2018 в 08:40
поделиться
  • 1
    По сравнению с ответом @MichaelBerkowski, у этого есть некоторая новая информация. Большое спасибо, спасибо! – Seán Healy 20 August 2013 в 01:55
  • 2
    Я пишу свой ответ одновременно с ним. лол. Он был просто комментарием, и я подумал, что восполню какой-то фон, так как я закодировал почтовый сервер. – CP510 20 August 2013 в 01:57
Другие вопросы по тегам:

Похожие вопросы: