A ver, yo tengo algún ejemplo por ahí hecho, aunque no con un textarea sino seleccionando las direcciones de una base de datos, pero bueno, he retocado cosas para que esté hecho como lo tienes tú.
if ($_POST['emails']==""){
echo "No has seleccionado ningún usuario";
}else{
//Sacamos lista de los usuarios
$lista=explode('\n',$_POST['emails']);
$num = count($lista);
/* ************************************************** ***** */
/* ****************** CÓDIGO ***************************** */
/* ****************** PHPMAILER ************************** */
/* ************************************************** *** */
require "phpmailer/class.phpmailer.php";
$mail = new phpmailer();
//Con PluginDir le indicamos a la clase phpmailer donde se
//encuentra la clase smtp
$mail->PluginDir = "phpmailer/";
//Con la propiedad Mailer le indicamos que vamos a usar un servidor smtp
$mail->Mailer = "smtp";
//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "stmp.nombredominio.com";
//Le decimos cual es nuestro nombre de usuario y password
$mail->Username = "
[email protected]";
$mail->Password = "password";
//Indicamos cual es nuestra dirección de correo y el nombre que
//queremos que vea el usuario que lee nuestro correo
$mail->From = "
[email protected]";
$mail->FromName = "Nombre";
$mail->Timeout=10; //30 si es un servidor gratuito
//Envío
$i = 0;
while ($i<=$num){
$mail->Subject = "Mensaje";
$body = "texto del correo..";
//Definimos AltBody por si el destinatario del correo no admite email con formato html
$mail->AltBody = 'texto sin formato';
//Indicamos cual es la dirección de destino del correo
$direccion=$lista[$i];
$mail->AddAddress($direccion);
//se envia el mensaje, si no ha habido problemas
//la variable $exito tendra el valor true
$exito = $mail->Send();
//La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
//attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho
//valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
$exito=true;
}
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
//para intentar enviar el mensaje, cada intento se hara 5 segundos despues
//del anterior, para ello se usa la funcion sleep
$intentos=1;
while ((!$exito) && ($intentos < 3)) {
sleep(5);
$exito = $mail->Send();
$intentos=$intentos+1;
}// FIN while ((!$exito) && ($intentos < 5))
if(!$exito) {
echo "Problemas enviando correo electrónico a " .$lista['$i']. "<br />";
echo $mail->ErrorInfo."<br />";
}else{
echo "Mensaje enviado correctamente a " .$lista['$i']."<br />";
}
// Borro la direccion de destino establecida anteriormente
$mail->ClearAddresses();
$i++;
}// fin while envío
/*************** FIN PHPMAILER ********************/
}//FIN if ($_POST['emails']== "")
Obviamente puede haber algún error ya que he modificado cosas sin testearlo nuevamente.