• Publicidad

Email::Stuffer

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Email::Stuffer

Notapor silva » 2021-06-16 12:14 @551

Agradecería si me pudiesen orientar en encontrar el error por el cual al enviar un correo con Email::Stuffer, éste llega correctamente a destino pero NO con el From indicado como tal.

Estoy colocando una dirección de correo correcta en el From pero no llega a destino como que fue enviado desde esa dirección, sino que aparece: root, apache u otro usuario que ejecute el pl.
Gracias.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Email::Stuffer;
  2.  
  3. Email::Stuffer->from       ('[email protected]' )
  4.               ->to         ($email_destino          )
  5.               ->bcc        ('[email protected]'     )
  6.               ->subject    ('Comprobante'           )
  7.               ->text_body  ($texto                  )
  8.               ->attach_file($archPDF                )
  9.               ->send;
  10. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: Email::Stuffer

Notapor explorer » 2021-06-16 14:56 @664

A ver... ¿estás seguro?

Si el correo llega, seguro que en el From: está puesta la dirección del destinatario.

Lo que quizás estás viendo es el campo Return-path:.

Por ejemplo, tengo unos script que los ejecuta el root lanzados por el cron. El usuario de partida queda en Return-path, pero el contenido del From es distinto y personalizado.

Ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Tue, 15 Jun 2021 10:59:02 +0200
Received: from root by aprolix.aproxy.net with local (Exim 4.92)
        (envelope-from <[email protected]>)
        id 1lt4uT-0007nJ-UJ; Tue, 15 Jun 2021 10:59:02 +0200
From: Robot <[email protected]>
Content-Type: text/plain; charset=UTF-8
To: [email protected]
Message-Id: <[email protected]>
Date: Tue, 15 Jun 2021 10:59:01 +0200
Subject: Buzones grupoqalidad sin actividad desde hace más de 7 días
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

En este ejemplo, aparece root como usuario que genera el correo, pero en el From aparece el usuario robot.

En tu programa de correo, pídele que te muestre todas las cabeceras de ese mensaje. Fíjate en esos dos campos, y nos cuentas.
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: Email::Stuffer

Notapor silva » 2021-06-17 04:40 @236

Gracias por tu respuesta.

" ... Si el correo llega, seguro que en el From: está puesta la dirección del destinatario ..."

El destinatario lo coloco en el 'To'. Utilizo el From para que el destinatario sepa desde qué cuenta de correo le llega el mensaje.

2- Toma diferentes FROM según quien ejecute el pl. Si lo ejecuto como root en la línea de comando en el servidor, toma root:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Received: from [190.194.1.1] (port=40910 helo=pron.insu.com)
        by neo.servidoraweb.net with esmtpa (Exim 4.94.2)
        (envelope-from <[email protected]>)
        id 1lt6EB-005bLs-Bp
        for [email protected]; Tue, 15 Jun 2021 07:23:27 -0300
Received: by pron.insu.com (sSMTP sendmail emulation); Tue, 15 Jun 2021 07:23:25 -0300
From: "root" <[email protected]>
Date: Tue, 15 Jun 2021 07:23:25 -0300
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
To: [email protected]
X-Mailer: MIME::Lite 3.033 (F2.84; T2.04; A2.13; B3.13; Q3.13)
Message-Id: <[email protected]>
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - neo.servidoraweb.net
X-AntiAbuse: Original Domain - hotmail.com
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - insu.com
X-Get-Message-Sender-Via: neo.servidoraweb.net: authenticated_id: [email protected]
X-Authenticated-Sender: neo.servidoraweb.net: [email protected]
X-IncomingHeaderCount: 21
Return-Path: [email protected]
X-MS-Exchange-Organization-Expiration
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


No toma lo que se le coloca en el campo FROM

Tener en cuenta que he utilizado el mismo pl en otros lugares y FUNCIONA. Pero no sucede lo mismo en este caso.


Gracias.
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Re: Email::Stuffer

Notapor explorer » 2021-06-17 13:31 @605

Vale, lo he probado en mi máquina y funciona, excepto el campo bcc, pero se trata de un problema distinto: Email::Stuffer usa a Email::Sender::Simple para el transporte de los correos, y éste tiene esa funcionalidad recortada a propósito.

Añadiendo un transport personalizado y activando el debug, podemos ver qué es lo que se está enviando. (Por defecto, el transporte lo hace el comando sendmail del sistema).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Prueba de envío de correo con Email::Stuffer
  4. # Joaquín Ferrero, junio 2021
  5. #
  6. use v5.24.1;
  7. use Email::Stuffer;
  8.  
  9. # Create and send the email in one shot
  10. Email::Stuffer  ->from     ('[email protected]'              )
  11.                 ->to       ('[email protected]'           )
  12. #                ->bcc      ('[email protected]'   )
  13.                 ->subject  ('Pruebas de Stuffer'            )
  14.                 ->text_body('Prueba de correo'              )
  15.                 ->transport('SMTP', { host => '127.0.0.1', debug => 1 } )
  16.                 ->send;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

La salida es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
root@ns389494:~/bin# perl kk.pl
Net::SMTP>>> Net::SMTP(3.08_01)
Net::SMTP>>>   Net::Cmd(3.08_01)
Net::SMTP>>>     Exporter(5.72)
Net::SMTP>>>   IO::Socket::IP(0.37)
Net::SMTP>>>     IO::Socket(1.38)
Net::SMTP>>>       IO::Handle(1.36)
Net::SMTP=GLOB(0x561d5d60afa8)<<< 220 aprolix.aproxy.net ESMTP Exim 4.92 Thu, 17 Jun 2021 17:20:15 +0200
Net::SMTP=GLOB(0x561d5d60afa8)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-aprolix.aproxy.net Hello localhost.localdomain [127.0.0.1]
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-SIZE 209715200
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-8BITMIME
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-PIPELINING
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-AUTH LOGIN
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-CHUNKING
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250-STARTTLS
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250 HELP
Net::SMTP=GLOB(0x561d5d60afa8)>>> MAIL FROM:<[email protected]>
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250 OK
Net::SMTP=GLOB(0x561d5d60afa8)>>> RCPT TO:<[email protected]>
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250 Accepted
Net::SMTP=GLOB(0x561d5d60afa8)>>> DATA
Net::SMTP=GLOB(0x561d5d60afa8)<<< 354 Enter message, ending with "." on a line by itself
Net::SMTP=GLOB(0x561d5d60afa8)>>> Date: Thu, 17 Jun 2021 17:20:15 +0200
Net::SMTP=GLOB(0x561d5d60afa8)>>> MIME-Version: 1.0
Net::SMTP=GLOB(0x561d5d60afa8)>>> Content-Type: text/plain; charset="utf-8"; format="flowed"
Net::SMTP=GLOB(0x561d5d60afa8)>>> Content-Transfer-Encoding: quoted-printable
Net::SMTP=GLOB(0x561d5d60afa8)>>> From: [email protected]
Net::SMTP=GLOB(0x561d5d60afa8)>>> To: [email protected]
Net::SMTP=GLOB(0x561d5d60afa8)>>> Subject: Pruebas de Stuffer
Net::SMTP=GLOB(0x561d5d60afa8)>>>
Net::SMTP=GLOB(0x561d5d60afa8)>>> Prueba de correo=
Net::SMTP=GLOB(0x561d5d60afa8)>>> .
Net::SMTP=GLOB(0x561d5d60afa8)<<< 250 OK id=1lttoV-0002tA-Cl
Net::SMTP=GLOB(0x561d5d60afa8)>>> QUIT
Net::SMTP=GLOB(0x561d5d60afa8)<<< 221 aprolix.aproxy.net closing connection
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

El correo que llega es (quitando las líneas no importantes):
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Thu, 17 Jun 2021 17:20:16 +0200
Received: from localhost ([127.0.0.1] helo=localhost.localdomain)
        by aprolix.aproxy.net with esmtp (Exim 4.92)
        (envelope-from <[email protected]>)
        id 1lttoV-0002tA-Cl
        for [email protected]; Thu, 17 Jun 2021 17:20:16 +0200
Date: Thu, 17 Jun 2021 17:20:15 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
From: [email protected]
To: [email protected]
X-Connected-IP: 127.0.0.1:60844
X-Message-Linecount: 9
X-Body-Linecount: 1
X-Message-Size: 253
X-Body-Size: 18
Subject: Pruebas de Stuffer
X-Delivered-To: [email protected] ([email protected])
X-Message-Age: 1

Prueba de correo=
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Entonces, lo que veo es que no es cierto lo que dije en el primer mensaje: Return-path no refleja el nombre del verdadero usuario que envió el correo. En este caso, como el envío se ha realizado usando una conexión SMTP, el servidor de correo no sabe quién es el que le envía el correo (en el protocolo SMTP no se contempla. Es el programa transporte de correo el que debería agregarlo como cabecera aparte, pero eso no es lo que importa para probar Email::Stuffer).

Pero del resto sí que veo que funciona: se transmite correctamente [email protected] como dirección de origen inventada (de hecho, no existe esa cuenta en este sistema).

Tanto en el diálogo con el servidor SMTP, como en el correo resultado, vemos que el From es el que hemos indicado.

Te aconsejo que hagas una prueba con el transport(), a ver si obtienes alguna pista más de lo que puede estar pasando.
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: Email::Stuffer

Notapor silva » 2021-06-17 19:04 @836

¡Gracias! Lo intentaré.
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Re: Email::Stuffer

Notapor silva » 2021-06-18 04:23 @224

¡Solucionado!

Colocando la línea siguiente fue suficiente para que tome cualquier From que coloque. Gracias.

->transport('SMTP')
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Re: Email::Stuffer

Notapor explorer » 2021-06-18 05:54 @287

Ya, pero eso no resolvió el problema, sólo lo soslayó.

Si te ha funcionado dialogando con el servidor de correo local directamente, entonces el problema está en el otro transporte usabas, que por defecto es el programa sendmail (o exim4, como alternativa a sendmail).

Hay que tenerlo en cuenta para la próxima vez que te ocurra algo parecido con otro programa.
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 Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado