blob: 9f60fb14a42ab9a0ab17924045c835fd62acc92e [file] [log] [blame]
<?php
declare(strict_types=1);
namespace Ddeboer\Imap\Message;
/**
* An e-mail address.
*/
final class EmailAddress
{
private string $mailbox;
private ?string $hostname;
private ?string $name;
private ?string $address;
public function __construct(string $mailbox, string $hostname = null, string $name = null)
{
$this->mailbox = $mailbox;
$this->hostname = $hostname;
$this->name = $name;
if (null !== $hostname) {
$this->address = $mailbox . '@' . $hostname;
}
}
/**
* @return null|string
*/
public function getAddress()
{
return $this->address;
}
/**
* Returns address with person name.
*/
public function getFullAddress(): string
{
$address = \sprintf('%s@%s', $this->mailbox, $this->hostname);
if (null !== $this->name) {
$address = \sprintf('"%s" <%s>', \addcslashes($this->name, '"'), $address);
}
return $address;
}
public function getMailbox(): string
{
return $this->mailbox;
}
/**
* @return null|string
*/
public function getHostname()
{
return $this->hostname;
}
/**
* @return null|string
*/
public function getName()
{
return $this->name;
}
}