Что делает функцию PHP mail () настолько медленной?

Я сделал быстрый PHP-скрипт на моем сервере, содержащий вызов mail (), и начал его тестировать. Страница html всегда загружается мгновенно, поэтому я предполагаю, что это означает, что PHP, содержащий вызов mail (), завершен. Тем не менее, письма, отправленные из почты (), принимаются только через каждые 10-20 минут после вызова. Почему задержка? Осуществляет ли mail () запуск внешних программ? (электронные письма отправляются на учетную запись электронной почты gmail, если это необходимо)

Related of "Что делает функцию PHP mail () настолько медленной?"

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

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

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

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

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