Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. IdnAddressEncoder.php

class IdnAddressEncoder

An IDN email address encoder.

Encodes the domain part of an address using IDN. This is compatible will all SMTP servers.

Note: It leaves the local part as is. In case there are non-ASCII characters in the local part then it depends on the SMTP Server if this is supported.

@author Christian Schmidt

Hierarchy

  • class \Symfony\Component\Mime\Encoder\IdnAddressEncoder implements \Symfony\Component\Mime\Encoder\AddressEncoderInterface

Expanded class hierarchy of IdnAddressEncoder

1 file declares its use of IdnAddressEncoder
Address.php in vendor/symfony/mime/Address.php

File

vendor/symfony/mime/Encoder/IdnAddressEncoder.php, line 25

Namespace

Symfony\Component\Mime\Encoder
View source
final class IdnAddressEncoder implements AddressEncoderInterface {
    
    /**
     * Encodes the domain part of an address using IDN.
     */
    public function encodeString(string $address) : string {
        $i = strrpos($address, '@');
        if (false !== $i) {
            $local = substr($address, 0, $i);
            $domain = substr($address, $i + 1);
            if (preg_match('/[^\\x00-\\x7F]/', $domain)) {
                $address = \sprintf('%s@%s', $local, idn_to_ascii($domain, \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, \INTL_IDNA_VARIANT_UTS46));
            }
        }
        return $address;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
IdnAddressEncoder::encodeString public function Encodes the domain part of an address using IDN. Overrides AddressEncoderInterface::encodeString
RSS feed
Powered by Drupal