Question

I am starting to use the Jmail method to send emails via an extension: http://docs.joomla.org/Sending_email_from_extensions

But the method doesn't seem to allow specifying names for the recipient, at least I haven't found the way to do it.

$mailer->addRecipient($recipient);

The documentation says: "mixed $recipient: Either a string or array of strings [e-mail address(es)]"

Anyone knows how to add the name to the recipient?

I'm using Joomla 2.5, the 1.5 method works.

Was it helpful?

Solution

In Joomla! 2.5 (or starting with the Platform version 11.1) the function accepts two parameters:

public function addRecipient($recipient, $name = '')

where

$recipient - Either a string or array of strings [email address(es)]

$name - Either a string or array of strings [name(s)]

Usage:

$mailer = JFactory::getMailer();

$mailer->addRecipient('john.doe@example.com', 'John Doe');

OTHER TIPS

That's a BUG.

I just facing the same problem, no matter how I pass the arguments, it just can't specify the name.

And in the Joomla! source code /libraries/joomla/mail/mail.php, from line 167, the doc comment says:

/**
 * Add recipients to the email
 *
 * @param   mixed  $recipient  Either a string or array of strings [email address(es)]
 * @param   mixed  $name       Either a string or array of strings [name(s)]
 *
 * @return  JMail  Returns this object for chaining.
 *
 * @since   11.1
 */

Fine, but the variable $name NEVER be used in the function:

public function addRecipient($recipient, $name = '')
{
    // If the recipient is an array, add each recipient... otherwise just add the one
    if (is_array($recipient))
    {
        foreach ($recipient as $to)
        {
            $to = JMailHelper::cleanLine($to);
            $this->AddAddress($to);
        }
    }
    else
    {
        $recipient = JMailHelper::cleanLine($recipient);
        $this->AddAddress($recipient);
    }

    return $this;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top