Package to work with email addresses

v1.3 2024-02-12 22:05 UTC

This package is auto-updated.

Last update: 2024-05-12 22:40:46 UTC


Supported PHP-versions Latest Version on Packagist Build Status Software License

Simple package where you can extract all the parts of an email address. Among the use cases is the retrieval of the actual delivery-address for a subaddress (i.e. "plus addressing", "tagged addressing" etc.).

Available is also an email address builder to construct an address based on parts – as well as a simple validator (using egulias/email-validator.)

Note: Currently only subaddresses with + is supported, which is used by a vast majority of e-mail providers that support subaddressing.


This package requires PHP 8.1 or newer.


composer require olssonm/email-address



use Olssonm\EmailAddress\EmailAddress;

// Returns a `Olssonm\EmailAddress\Entity\EmailAddress`-instance
$email = EmailAddress::parse('test+tag@example.com');

echo $email->address;
// test+tag@example.com

echo $email->local;
// test+tag

echo $email->delivery;
// test

echo $email->tag;
// tag

echo $email->domain;
// example.com


use Olssonm\EmailAddress\EmailAddress;

// Returns a `Olssonm\EmailAddress\Entity\EmailAddress`-instance via `get()`
$email = EmailAddress::build()

echo $email->address;
// test@example.com

A clever usage of the builder is the ability to change and/or remove the subaddressing-part:

$email = EmailAddress::build()

echo $email->address;
// test@example.com
$email = EmailAddress::build()

echo $email->address;
// test+mytag@example.com

Note, the address()-method for the builder uses the parser – i.e. an exception may be thrown if the address is invalid.


use Olssonm\EmailAddress\EmailAddress;

// true


If an invalid e-mail address is parsed, an Olssonm\EmailAddress\Exceptions\InvalidEmailAddressException will be thrown. A good idea is to validate the e-mail address before parsing it.


The MIT License (MIT). Please see the LICENSE for more information.

© 2023 Marcus Olsson.