Secondary question:
It's two seprate operators, so rather = and &, than =&.
= is your plain old assignment operator.
& is the reference operator, which passes a reference to the variable, rather than the value of the variable.
While this used to be valid code, it ought to generate an error in PHP 5.
$instance =& new Someclass
# both these variables will reference the same instance
$instance = new SomeClass;
$sameInstance = $instance; # assign the reference
# which, for basic types corresponds to
$i = 2;
$j = &$i; # assign the reference
# Here you have two separate instances
$instance = new SomeClass;
$newInstance = clone $instance;
# which corresponds to
$i = 2;
$j = $i;
I havn't looked at Mail_queue, but if it uses the regular mail() function to send emails, it's probably because it wasn't intended to send one email to several recipients, but rather just send several different emails each to one recipient only. Or, there might be a config option to use something other than mail().
You could have a look at PEAR::mail to send single emails to multiple recipients, which seem to match what you are after.
And if you want to create a mail queue, you should indeed remove the recipient from the db table and keep recipients in a separate table with a foreign key to the emails.