Open Journal Systems  3.3.0
IdnAddressEncoder.php
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 
13 
15 
28 {
34  public function encodeString(string $address): string
35  {
36  $i = strrpos($address, '@');
37  if (false !== $i) {
38  $local = substr($address, 0, $i);
39  $domain = substr($address, $i + 1);
40 
41  if (preg_match('/[^\x00-\x7F]/', $local)) {
42  throw new AddressEncoderException(sprintf('Non-ASCII characters not supported in local-part os "%s".', $address));
43  }
44 
45  if (preg_match('/[^\x00-\x7F]/', $domain)) {
46  $address = sprintf('%s@%s', $local, idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46));
47  }
48  }
49 
50  return $address;
51  }
52 }
Symfony\Component\Mime\Encoder\IdnAddressEncoder
Definition: IdnAddressEncoder.php:27
Symfony\Component\Mime\Encoder
Definition: AddressEncoderInterface.php:12
Symfony\Component\Mime\Encoder\IdnAddressEncoder\encodeString
encodeString(string $address)
Definition: IdnAddressEncoder.php:34
Symfony\Component\Mime\Exception\AddressEncoderException
Definition: AddressEncoderException.php:17
Symfony\Component\Mime\Encoder\AddressEncoderInterface
Definition: AddressEncoderInterface.php:19