PHPMailer\PHPMailer

PHPMailer::addAnAddressprotectedWP 1.0

Add an address to one of the recipient arrays or to the ReplyTo array. Addresses that have been added already return false, but do not throw exceptions.

Method of the class: PHPMailer{}

No Hooks.

Returns

true|false. true on success, false if address already used or invalid in some way

Usage

// protected - for code of main (parent) or child class
$result = $this->addAnAddress( $kind, $address, $name );
$kind(string) (required)
One of 'to', 'cc', 'bcc', or 'ReplyTo'.
$address(string) (required)
The email address to send, resp. to reply to.
$name(string)
.
Default: ''

PHPMailer::addAnAddress() code WP 7.0

protected function addAnAddress($kind, $address, $name = '')
{
    if (
        self::$validator === 'php' &&
        ((bool) preg_match('/[\x80-\xFF]/', $address))
    ) {
        //The caller has not altered the validator and is sending to an address
        //with UTF-8, so assume that they want UTF-8 support instead of failing
        $this->CharSet = self::CHARSET_UTF8;
        self::$validator = 'eai';
    }
    if (!in_array($kind, ['to', 'cc', 'bcc', 'Reply-To'])) {
        $error_message = sprintf(
            '%s: %s',
            self::lang('Invalid recipient kind'),
            $kind
        );
        $this->setError($error_message);
        $this->edebug($error_message);
        if ($this->exceptions) {
            throw new Exception($error_message);
        }

        return false;
    }
    if (!static::validateAddress($address)) {
        $error_message = sprintf(
            '%s (%s): %s',
            self::lang('invalid_address'),
            $kind,
            $address
        );
        $this->setError($error_message);
        $this->edebug($error_message);
        if ($this->exceptions) {
            throw new Exception($error_message);
        }

        return false;
    }
    if ('Reply-To' !== $kind) {
        if (!array_key_exists(strtolower($address), $this->all_recipients)) {
            $this->{$kind}[] = [$address, $name];
            $this->all_recipients[strtolower($address)] = true;

            return true;
        }
    } else {
        foreach ($this->ReplyTo as $replyTo) {
            if (0 === strcasecmp($replyTo[0], $address)) {
                return false;
            }
        }
        $this->ReplyTo[] = [$address, $name];

        return true;
    }
    return false;
}