host ? $this->mailbox.'@'.$this->host : $this->mailbox); $personal = trim($this->personal); $is_encoded = false; if (preg_match('/(=\?([^?]*)\?(Q|B)\?([^?]*)\?=)(.*)/i',$personal,$reg)) { $is_encoded = true; } if ($personal) { if ($encoded && !$is_encoded) { $personal_encoded = encodeHeader('"' . $personal . '"'); if ($personal !== $personal_encoded) { $personal = $personal_encoded; } else { //FIXME: this probably adds quotes around an encoded string which itself is already quoted $personal = '"' . $this->personal . '"'; } } else { if (!$is_encoded || $unconditionally_quote) { $personal = '"' . $this->personal . '"'; } } $addr = ($email ? $personal . ' <' .$email.'>' : $this->personal); $best_dpl = $this->personal; } else { $addr = $email; $best_dpl = $email; } $result = ($full ? $addr : $best_dpl); } return $result; } /** * Shorter version of getAddress() function * Returns full encoded address. * @param boolean $unconditionally_quote (since 1.4.21/1.5.2) when TRUE, always quote the personal part, whether or not it is encoded, otherwise quoting is only added if the personal part is not encoded * * @return string * @since 1.4.0 */ function getEncodedAddress($unconditionally_quote=FALSE) { return $this->getAddress(true, true, $unconditionally_quote); } /** * Return just the email portion of this address * @return string * @since 1.5.2 */ function getEmail () { $r = ''; if (is_object($this)) { $r = $this->host ? $this->mailbox.'@'.$this->host : $this->mailbox; } return $r; } }