2009-02-18 32 views

Respuesta

13

personalmente, le sugiero que utilice mi módulo Email::Send::SMTP::TLS que funciona bastante bien a través del TLS de Google Mail .

Gracias.

use Email::Send; 

my $mailer = Email::Send->new({ 
    mailer => 'SMTP::TLS', 
    mailer_args => [ 
     Host => 'smtp.gmail.com', 
     Port => 587, 
     User => '[email protected]', 
     Password => 'password', 
     Hello => 'fayland.org', 
    ] 
}); 

use Email::Simple::Creator; # or other Email:: 
my $email = Email::Simple->create(
    header => [ 
     From => '[email protected]', 
     To  => '[email protected]', 
     Subject => 'Subject title', 
    ], 
    body => 'Content.', 
); 

eval { $mailer->send($email) }; 
die "Error sending email: [email protected]" if [email protected]; 
1

Hay varios módulos SMTP en CPAN, por ejemplo Net::ESMTP. Además, es muy probable que Sendmail use SMTP para comunicarse con los servidores de correo, entonces, ¿cuál es su verdadera razón para no querer usarlo?

0

Si no está familiarizado con CPAN (red completa Perl Archive Network), le recomiendo que marque como favorito ese sitio. Contiene bibliotecas de terceros (mayormente probadas).

Un ejemplo que muestra cómo enviar correos electrónicos usando Perl: http://www.perlfect.com/articles/sendmail.shtml

+0

OP dijo: "No quiero usar sendmail" – jfs

6

Según el comentario, no está claro si desea enviar correo electrónico a través de SMTP de Google, o simplemente enviar un correo electrónico en general (tal vez a su cuenta de Gmail) . Debería consultar Email::Send y posiblemente Email::Send::Gmail.

Alternativamente, si lo que realmente está preguntando es cómo muevo el correo electrónico desde algún lugar que no sea de Gmail a Gmail, he tenido mucha suerte con IMAP usando Mail::Box y el backend Mail::Box::IMAP4::SSL. Puede ver un ejemplo de uso here.

+0

Correo electrónico :: Enviar ha sido desaprobado recientemente en favor de Correo electrónico :: Remitente –

0

Ocasionalmente uso MIME::Lite, que es un contenedor alrededor de Net::SMTP para simplificar el proceso de creación de objetos de correo electrónico, archivos adjuntos y envío de la carga útil.

Si no está familiarizado con la instalación de módulos, compruebe:

En Windows, utilice el ActiveState Perl Package Manager (en el menú de inicio)

En Unix, utilizar CPAN: $ sudo cpan Module::Name

En alojado cuentas de Unix: How can I install a CPAN module into a local directory?

2

Siempre he utilizado y tenía muy buena suerte con Mail::Sender.

+0

Correo :: El remitente es bueno. – daotoad

1

Otra posibilidad que podría interesarle es utilizar el módulo Email::Send::Gmail de CPAN. Esto le permitirá enviar correos electrónicos desde su cuenta de Gmail a cualquier cuenta (por ejemplo, a usted)

0

Email::Send (tal como se utiliza en la respuesta de Fayland Lam) está en desuso:

Email :: Enviar va a desaparecer ... bueno, en realidad no va a desaparecer, pero está siendo marcada oficialmente "fuera de favor."

Esto funciona para mí, utilizando el correo electrónico preferido :: Remitente:

use strict; 
use warnings; 

use Email::Sender::Simple qw(sendmail); 
use Email::Sender::Transport::SMTPS(); 
use Email::Simple(); 
use Email::Simple::Creator(); 

my $smtpserver = 'server'; 
my $smtpport = 587; 
my $smtpuser = 'username'; 
my $smtppassword = 'password'; 

my $transport = Email::Sender::Transport::SMTPS->new({ 
    host => $smtpserver, 
    port => $smtpport, 
    ssl => "starttls", 
    sasl_username => $smtpuser, 
    sasl_password => $smtppassword, 
}); 

my $email = Email::Simple->create(
    header => [ 
    To  => '[email protected]', 
    From => '[email protected]', 
    Subject => 'Hi!', 
    ], 
    body => "This is my message\n", 
); 

sendmail($email, { transport => $transport }); 
Cuestiones relacionadas