Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130860 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 5CAC51A00BC for ; Wed, 13 May 2026 01:47:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1778636874; bh=JdAfDNrnjjMQZsJnjfSr0yYGuqiIhyTwqRz+PQR27Fg=; h=From:Date:Subject:To:From; b=ITOfSZaFT+dV6dl9VwlcV4vtda7E13Was//+mLUoVXBWC9Gx/iaQ3cQ0DCnH9rxSZ 7tDr43N1Ej/dBEKLHF/H+Dc2m+k6RttMYHK1Q4vP5xvR5rjAno/6SCRfNw2ofw29bz XJrX/bK5+kn/ZeVT7DZ4Xaz1GwXpU610htFCijb449ziaaq22kQkmGlMkZKTlPwzVJ BYT8qgdmEchO2J91nZtdXQVZWMJeGRscjF5ZCyDuhv+CA+eL2Nz974QbSw3OXYjfJq cmUFZ5aBuNndVBBaOancQvK+I6rtzUmVaaQAx6RhG5HuFbDVCq7LawZWItL64PM3EV pR6kj8pF0+bpg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id E83C4180040 for ; Wed, 13 May 2026 01:47:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 13 May 2026 01:47:43 +0000 (UTC) Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-bcda7765d64so551976166b.1 for ; Tue, 12 May 2026 18:47:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778636857; cv=none; d=google.com; s=arc-20240605; b=jAuJ8LOf3iCo6hwr1BrLrIw0hvQ3tfXtnJCnnzAeqKEqrpV2hLNT9gr72zZjKKi/+2 eAXm9fD3IIO9bvNWG3W/MlmiwyrByRf6BVgfyIFCvnrsP0S29z8wLgRCtj2ex/jKks2A HivLIqiE/KxnC5wdAcLDk84d2NPDegDBx7wBgG7nrm+WLyoRgrgSX/mNndmZu2beHKOg uYJNaxpc9w8IJLG+1CfHDsoBXR6aMaRlsPaCoqPyv+5Xgitas2/eRgeDi14AtjvgHub0 10XrOLRFWDdUMVVqcD90MXO7bvoSsIpveSA9ZtQPigflJMZdUjWTHyc8BEOdwHM9+lqv RwzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=qeOTHIoR84g/jyT6OERwC+jtw2leNT0p6oHYnJmI0k4=; fh=5KvmJ5K5QBymFDNCdtgpPKEwgSxqOQnCzLzHVTYb8GE=; b=UyC3383xFvucFRdIX5ph5jcplh/KV+Ruv4DDXR0i38SRAH25whoJFEvSQXH+Bdc9BT jVw5qQ4CSt89UwnM6HwngbTPEVOToQtQfIzzd0gezYIbpWFYLmYm/l/XDxqmUo+OktxR 3qvpvfHB1qXAarT6rAXJpCTmVuin+bmVjrWohzJMw+lgCqx6XmcJdls79mYiZKpTVAI0 2g7BNYB/rjCmBWMoVB5EQniW7F2OkO9Q0YGaUlD5ionrfaaAdkEI/fjP1RgeNacRMfyP BdnfdlN+WZvimgnITxNrENvtG3v3vk70QpLvYeCsHS8ABvlNsHWhOHX8BglQTeCV10Nu mRZQ==; darn=lists.php.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778636857; x=1779241657; darn=lists.php.net; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=qeOTHIoR84g/jyT6OERwC+jtw2leNT0p6oHYnJmI0k4=; b=dYOZmNXtSepJRJFK5OkD3KUuC0oiy8KCAbXr4U71uAvesizgO05rr9RqMnPsAesqWQ tesn3oDuHXriPMapzhuYI+4f1y7OehhWN1qQMJ62diJRnSWFDJViwhb9krOuGVidzpKa rW2vv0GXA6Fcwu1NwEpq7ONluvzxwARyYjw39KPXq/bZprU6dJeUTEITIBbIBrdi9tXF E8Gc117R43KcLS8Mv1JQvKRBqWWkFTUKCz7/2eGVI9jhRff7LqJlmOhERPCVUvr2I/Xa xb+puEsJZrm5VbxebKaaTH9V4IL1ZzngRhBn7Ye/N6Jl6kp1J6ZTllUp8YqR9nYrOd8F Mwfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778636857; x=1779241657; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qeOTHIoR84g/jyT6OERwC+jtw2leNT0p6oHYnJmI0k4=; b=rHATQsMoakTemJorwWkUTWWAmeWZCW6swtsaKuSH+7M3sZjDp/X+hfOUy9PCvIOfMX I5DPcuaf/HgNPgOa8LzBZMyGoqyim+f3vOUZlfFZ95wbCIqHpyV4W1FTIdxfd4kfzx1I cWZBCbYmv3R3V0bwiL3dEDF2vuKK+umQ/tIofgw/nVpItwGKrMk1UwrXO/gXXdZrVbWc 40o8k6SrT0dc1YPRnVlA3uFdg/bF5a7G1xlamag+tAKR13TzVp5GHTr5p3jZlV7jgbDX 8cz7qLB4l49JOHrzm4DsFx6z9rbOAW32TmKw62i747h1W+EuXZxbOjFTPUDTAy8evulR JMWw== X-Gm-Message-State: AOJu0Yw0XqSqEWEPyRiNz6ZVCv6mPA/jru/aanISdsBcHXWEZTDKQrkY glGhwGiQUgMmZzSJYLY/+Rsw/v8LNZ4cg4Dd2o4/FKTm0yp/Vqckh5Xt7IaShORtteH/j9LNpgW HVipPBQ5jLre4CMXeTGUglLOdzFCBdlrq/2KaOwg= X-Gm-Gg: Acq92OH/Vd8MMcHrBr2rVKCD7kY8Xl6S1fO5/pQKSX40TpzxGZIMowR6F1M4ZJVrMXZ tn7+By3Y99QWfLpWoC5jkfSPeNjz8z6vULgI18JpA5jXIlZ+A58bAE+dNFm8v5ZwvL5F3l3p6lo 1JHpFQN7P6FW1JfY8xsMHZljYpOjEe7PpdmFiSDuBdx13qyFYNayV3eCPQGgevJYsTgqzD6dkVE VozeDpVmGOw0tSOUjTs5NVNIx5MrleJFAVsvmh8AzPvSAD7EkzJauCrqrQtDyQWCFdEhm9e6CdV TTCDpjqELREXoh/VN/54nOY0ZuNWpwKtD3ZgrNKC X-Received: by 2002:a17:907:1b05:b0:bcd:1f91:291d with SMTP id a640c23a62f3a-bd3a8a24802mr73123066b.0.1778636856912; Tue, 12 May 2026 18:47:36 -0700 (PDT) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 Date: Tue, 12 May 2026 22:47:23 -0300 X-Gm-Features: AVHnY4LDU9OCT-w_k5ZCFnqJUBklNkYFyac-NbryLxoWIJjQD-BdSBjR6UXhe70 Message-ID: Subject: [PHP-DEV] Pre-RFC discussion about adding a DNS function for Null MX handling To: internals@lists.php.net Content-Type: multipart/alternative; boundary="0000000000000a6e180651a92af8" From: samuel.txd@gmail.com (Samuel Fontebasso) --0000000000000a6e180651a92af8 Content-Type: text/plain; charset="UTF-8" Hi internals, I would like to gather feedback before drafting an RFC for a small addition to PHP's DNS functions: dns_check_mx(string $hostname): bool The function would check whether a hostname has at least one non-null MX record. Today, checkdnsrr($domain, "MX") correctly returns true for a domain publishing a Null MX record: example.com. IN MX 0 . This is correct, since an MX record exists. However, RFC 7505 ( https://www.rfc-editor.org/rfc/rfc7505.html) defines this as an explicit signal that the domain does not accept email. I am not proposing any change to checkdnsrr(). It should remain a low-level DNS record existence check. Proposed behavior: - false when there are no MX records; - false when all MX records are Null MX records; - true when at least one MX record has an exchange target other than ".". This would not validate email deliverability or perform SMTP-level checks. It would only provide a DNS-level distinction between "has an MX record" and "has a non-null MX record". If there is interest in this direction, I am willing to work on the RFC and implementation. I would appreciate feedback on the scope, naming, and edge cases before preparing an RFC. Regards, Samuel Fontebasso --0000000000000a6e180651a92af8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Hi internals,

I wo= uld like to gather feedback before drafting an RFC for a small addition to = PHP's DNS functions:

=C2=A0 =C2=A0 dns_check_mx(string $hostname= ): bool

The function would check whether a hostname has at least one= non-null MX record.

Today, checkdnsrr($domain, "MX") corr= ectly returns true for a domain publishing a Null MX record:

=C2=A0 = =C2=A0 example.com. IN MX 0 .

Thi= s is correct, since an MX record exists. However, RFC 7505 (https://www.rfc-editor.org/rfc/rfc= 7505.html) defines this as an explicit signal that the domain does not = accept email.

I am not proposing any change to checkdnsrr(). It shou= ld remain a low-level DNS record existence check.

Proposed behavior:=
- false when there are no MX records;
- false when all MX records ar= e Null MX records;
- true when at least one MX record has an exchange ta= rget other than ".".

This would not validate email deliver= ability or perform SMTP-level checks. It would only provide a DNS-level dis= tinction between "has an MX record" and "has a non-null MX r= ecord".

If there is interest in this direction, I am willing to= work on the RFC and implementation.

I would appreciate feedback on = the scope, naming, and edge cases before preparing an RFC.

Regards,<= br>Samuel Fontebasso

--0000000000000a6e180651a92af8--