servidor - ¿Cómo envío un correo electrónico a mi cuenta de Gmail usando SMTP y Perl?
smtp gmail (9)
Según el comentario, no está claro si desea enviar un correo electrónico a través del SMTP de Google, o simplemente enviar un correo electrónico en general (tal vez a su cuenta de Gmail). Debería echar un vistazo a Email :: Send y posiblemente a 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 Gmail a Gmail, he tenido muy buena suerte con IMAP usando Mail :: Box y Mail :: Box :: IMAP4 :: Backend SSL Puedes ver un ejemplo de uso aquí .
No quiero usar sendmail para enviar un correo electrónico, pero preferiría usar SMTP. ¿Cómo puedo usar Perl para enviar un correo electrónico a mi cuenta de GMAIL?
Si no está familiarizado con CPAN (Comprehensive 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
Siempre he usado y tenido mucha suerte con Mail :: Sender .
personalmente, le sugiero que use mi módulo Correo electrónico :: Enviar :: 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: $@" if $@;
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)
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?
Si simplemente no te gusta sendmail, otra opción es usar Postfix , otro MTA.
Estas son las instrucciones que seguí para configurarlo en mi máquina, usando gmail: http://souptonuts.sourceforge.net/postfix_tutorial.html
Esto también puede ser útil si recibe una advertencia acerca de no verificar un certificado de Thawte Premium Server CA. http://ubuntuforums.org/archive/index.php/t-894355.html
Correo electrónico :: Enviar (como se usa en la respuesta de Fayland Lam) está en desuso:
Correo electrónico :: Enviar se va ... bueno, en realidad no se va, pero oficialmente está marcado como "fuera de lugar".
Esto funciona para mí, usando el Email :: Remitente preferido:
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 });
Utilizo MIME::Lite
, que es un envoltorio 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, verifique:
En Windows, use el administrador de paquetes de ActiveState Perl (en el menú de inicio)
En Unix, use CPAN: $ sudo cpan Module::Name
En cuentas alojadas de Unix: ¿cómo puedo instalar un módulo CPAN en un directorio local?