Ver Mensaje Individual
  #16 (permalink)  
Antiguo 16/06/2006, 04:08
jferrero
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
bad recipient indica que se ha puesto mal la dirección del destinatario. En el mensaje de error debe aparecer qué es lo que el servidor de correo ha recibido y ha tratado de reenviar. O míralo en los registros de actividad del correo, algo así como el fichero llamado mail.log.

Un fallo que puede haber ocurrido es haber puesto las direcciones de los destinatarios con un entrecomillado doble. Por ejemplo, así:

@recipients = ("[email protected]", "[email protected]", "[email protected]");

Pero es un error, ya que las comillas dobles provocan una expansión e interpretación de su contenido, a la búsqueda de expresiones y variables. Y en su contenido sí que hay variables Perl: todo aquello que empieza por '@'. Perl está confundiendo direcciones de correo con variables array: @hotmail, @msn @microsoft.

Solución 1: cambiar el entrecomillado doble por un simple, que impide la interpretación:

@recipients = ('[email protected]', '[email protected]', '[email protected]');

Solución 2: hacer arrays como el anterior es tan común en Perl que hay una forma abreviada para hacerlo:

@recipients = qw( [email protected] [email protected] [email protected] );

qw es un función que devuelve en forma de arrays todas las palabras que le pasemos como argumento. Es curioso pensar que [email protected] sea una palabra, pero sí, lo es: no tiene espacios en blanco dentro de ella.