* This file contains functions needed to extract email address headers from
* mime messages.
*
- * @copyright 2003-2010 The SquirrelMail Project Team
+ * @copyright 2003-2014 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
* Return address information from mime headers.
* @param boolean $full return full address (true) or only personal if it exists, otherwise email (false)
* @param boolean $encoded (since 1.4.0) return rfc2047 encoded address (true) or plain text (false).
+ * @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
*/
- function getAddress($full = true, $encoded = false) {
+ function getAddress($full = true, $encoded = false, $unconditionally_quote = FALSE) {
$result = '';
if (is_object($this)) {
$email = ($this->host ? $this->mailbox.'@'.$this->host
}
if ($personal) {
if ($encoded && !$is_encoded) {
- $personal_encoded = encodeHeader($personal);
+ $personal_encoded = encodeHeader('"' . $personal . '"');
if ($personal !== $personal_encoded) {
- $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) {
+ if (!$is_encoded || $unconditionally_quote) {
$personal = '"' . $this->personal . '"';
}
}
/**
* 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() {
- return $this->getAddress(true, true);
+ function getEncodedAddress($unconditionally_quote=FALSE) {
+ return $this->getAddress(true, true, $unconditionally_quote);
}
/**