PluginProbe
WPIDE – File Manager & Code Editor / 3.1
WPIDE – File Manager & Code Editor v3.1
3.5.8 3.5.7 2.0.14 2.0.15 2.0.16 2.0.2 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1 2.2 2.3 2.3.1 2.3.2 2.4.0 2.5 2.6 3.0 3.1 3.2 3.3 3.4 All 54 releases
wpide / vendor / symfony / mime / Encoder / IdnAddressEncoder.php

IdnAddressEncoder.php in WPIDE – File Manager & Code Editor 3.1, at vendor/symfony/mime/Encoder/IdnAddressEncoder.php

45 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\Mime\Encoder;
13
14 /**
15 * An IDN email address encoder.
16 *
17 * Encodes the domain part of an address using IDN. This is compatible will all
18 * SMTP servers.
19 *
20 * Note: It leaves the local part as is. In case there are non-ASCII characters
21 * in the local part then it depends on the SMTP Server if this is supported.
22 *
23 * @author Christian Schmidt
24 */
25 final class IdnAddressEncoder implements AddressEncoderInterface
26 {
27 /**
28 * Encodes the domain part of an address using IDN.
29 */
30 public function encodeString(string $address): string
31 {
32 $i = strrpos($address, '@');
33 if (false !== $i) {
34 $local = substr($address, 0, $i);
35 $domain = substr($address, $i + 1);
36
37 if (preg_match('/[^\x00-\x7F]/', $domain)) {
38 $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));
39 }
40 }
41
42 return $address;
43 }
44 }
45