• Publicidad

Envío de múltiples correos con Mime::Lite

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Envío de múltiples correos con Mime::Lite

Notapor danimera » 2012-02-29 08:32 @397

Resulta que tengo este trozo de código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach my $l (@$lista) {
  2.     $i++;
  3.     my $msg = $msg->build(
  4.         From    => '[email protected]',
  5.         To      => '[email protected]',
  6.         Subject => "!! Vende  en 7 Dias",
  7.         Type    => 'text/html',
  8.         Data    => $l->{'email'}
  9.     );
  10.  
  11.     #$msg->send('smtp', "mail.kolonosgroup.com", AuthUser=>"[email protected]", AuthPass=>"2011Asuseepc");
  12.     $msg->send;
  13.     sleep 5;
  14.  
  15. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

pero resulta que a mi correo solo llegan dos correos... es decir, parece que no me envía todo, y mi @lista es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $VAR1 = [
  2.           {
  3.             'email' => '[email protected]',
  4.             'nombres' => '',
  5.             'id' => '13'
  6.           },
  7.           {
  8.             'email' => '[email protected]',
  9.             'nombres' => '',
  10.             'id' => '16'
  11.           },
  12.           {
  13.             'email' => '[email protected]',
  14.             'nombres' => '',
  15.             'id' => '21'
  16.           },
  17.           {
  18.             'email' => '[email protected]',
  19.             'nombres' => '',
  20.             'id' => '22'
  21.           },
  22.           {
  23.             'email' => '[email protected]',
  24.             'nombres' => '',
  25.             'id' => '23'
  26.           },
  27.           {
  28.             'email' => '[email protected]',
  29.             'nombres' => '',
  30.             'id' => '24'
  31.           },
  32.           {
  33.             'email' => '[email protected]',
  34.             'nombres' => '',
  35.             'id' => '26'
  36.           },
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
.
.
.
.
Etc.... Etc..

Es bastante grande, de cientos de correos.. ¡¡ Qué será que puede pasar ??
Última edición por danimera el 2012-02-29 09:06 @421, editado 1 vez en total
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Re: Envío de múltiples correos con Mime::Lite

Notapor explorer » 2012-02-29 08:53 @411

Según la documentación, 'Data' indica el nombre de un archivo que contendrá el cuerpo del mensaje a enviar.

Pero tu lo que estás poniendo ahí es la dirección de correo del destinatario...

Mejor si pones esa dirección en el campo To.

Otra cosa... te recomiendo que edites tu mensaje y falsifiques las direcciones de correo que has puesto, si no quieres que los dueños de esas direcciones de correo reciban montañas de correo basura.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Envío de múltiples correos con Mime::Lite

Notapor danimera » 2012-02-29 09:07 @421

La verdad, quiero probar que me llegue el correo de esa persona a mi correo, es todo.
Por eso en Data solo pongo el correo y deberían llegarme 100, pero la verdad, solo llegan 2.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Envío de múltiples correos con Mime::Lite

Notapor explorer » 2012-02-29 09:45 @448

No estás "poniendo el correo" en Data.

Estás "poniendo la dirección de correo" en Data. Y Data no sirve para eso.

En Data tienes que poner el nombre de un archivo que contiene el cuerpo del mensaje. Pero no es la única manera de indicarle a MIME::Lite ese cuerpo.

Si quieres que el bucle envíe un correo a cada destinatario, solo puedes poner las direcciones en los campos To, Cc, y Bcc.

Y eso si quieres enviarles uno a uno, como está puesto en el bucle. Se pueden enviar a más destinatarios, por cada envío, pero eso es ya otra historia.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Envío de múltiples correos con Mime::Lite

Notapor danimera » 2012-02-29 09:48 @450

Yo no quiero que el correo le envie un email a cada destinatario...

Quiero que me envíe a mi un correo, para cada email y con el email de cada persona de la lista.

Pero solo me envía dos correos...
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Envío de múltiples correos con Mime::Lite

Notapor explorer » 2012-02-29 18:06 @796

¡¡¡AAAhhh!!!

Entendido...

El error está en la línea 3, que debes escribirla así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     my $msg = MIME::Lite->build(
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Envío de múltiples correos con Mime::Lite

Notapor danimera » 2012-02-29 20:20 @888

Gracias, gracias, pero qué raro...

Así debía funcionarme porque en mi clase base de CGI-App yo hice:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub sendEmail{
  2.     my $self = shift;
  3.     return new MIME::Lite;
  4.  
  5. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y en mi controlador lo llamé:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $msg = $self->sendEmail;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


:?
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Envío de múltiples correos con Mime::Lite

Notapor explorer » 2012-02-29 20:43 @904

Sí que es raro, pero el problema principal es que estás usando el mismo nombre de variable escalar para dos cosas distintas: una cosa es el objeto MIME::Lite, y otra cosa es el objeto correo creado a partir de la llamada al método build().

Es mejor que cada cosa tenga su propio nombre.

Por ejemplo, para el objeto MIME::Lite, llámalo $mimelite, mientras que para crear el correo, puedes llamarlo $msg. Así sabes en cada momento a qué te refieres, porque sino, en la línea 12 del primer código, ¿a qué $msg haces referencia? ¿al que acabas de crear o al del objeto MIME::Lite?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Envío de múltiples correos con Mime::Lite

Notapor danimera » 2012-03-02 11:23 @516

Pero si se supone que declaro la variable local com my() dentro de bucle no debería tener problemas, ¿o sí?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $msg = $self->sendmail;
  2.  
  3. foreach $x(@x){
  4.     my $msg = $msg->build();
  5.  
  6.  
  7. }
  8.  
  9.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Última edición por danimera el 2012-03-03 14:26 @643, editado 1 vez en total
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Envío de múltiples correos con Mime::Lite

Notapor explorer » 2012-03-02 12:18 @554

(Has escrito dos '-')

Pues... no sé decirte... yo sospecho que en la segunda vuelta, el valor de $msg será el del valor de la $msg local de la primera vuelta... y quizás por eso falle en la segunda vuelta.

Ya digo que no sé... habría que ejecutarlo paso a paso con el depurador.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados