perl - gratuito - servidor smtp hotmail
Fallo de autenticación(perl Net:: SMTP) con el servidor smtp de gmail (2)
He escrito una secuencia de comandos perl para enviar correos electrónicos usando el servidor smtp de gmail: smtp.gmail.com -
use Net::SMTP;
my $smtp = Net::SMTP->new(''smtp.gmail.com'',
Port=> 587,
Timeout => 20,
Hello=>''[email protected]''
);
print $smtp->domain,"/n";
$sender = "[email protected]";
$password = "mypassword";
$smtp->auth ( $sender, $password ) or die "could not authenticate/n";
$receiver = "[email protected]";
$subject = "my custom subject";
$smtp->mail($sender);
$smtp->to($receiver);
$smtp->data();
$smtp->datasend("To: <$reciever> /n");
$smtp->datasend("From: <$sender> /n");
$smtp->datasend("Content-Type: text/html /n");
$smtp->datasend("Subject: $subject");
$smtp->datasend("/n");
$smtp->datasend(''the body of the email'');
$smtp->dataend();
$smtp->quit();
print "done/n/n";
Para ''usuario'', tengo mi nombre de usuario de gmail y para ''mypassword'' tengo la contraseña. Pero cuando ejecuto este código, se detiene en la auth dando: no se pudo autenticar.
Puedo conectarme al serever smtp de google cuando obtengo: ''mx.google.com'' como resultado de:
print $ smtp-> domain, "/ n";
¿Qué es lo que estoy haciendo mal? Por favor ayuda.
Gmail usa TLS / STARTTLS en el puerto 587, SSL en el puerto 465 . Siga el envío de correo electrónico a través de SMTP de Google desde Perl . Alternativamente, puede usar Email :: Send :: SMTP :: Gmail . Lo recomiendo porque es mucho más fácil de usar y tiene muchas más funciones.
use Net::SMTP;
my $smtp = Net::SMTP->new ....
afaik necesita usar una conexión encriptada para enviar a través de gmail, use Net :: SMTP :: TLS o Net :: SMTP :: SSL (con el puerto 465)
Hello=>''[email protected]''
''Hola'' no es una dirección de correo electrónico, ponga allí su nombre de host
$sender = "[email protected]";
...
$receiver = "[email protected]";
poner estos en comillas simples
si todavía obtienes "no se pudo autenticar". asegúrese de tener instalados los módulos MIME :: Base64 y Authen :: SASL .
$smtp->datasend("To: <$reciever> /n");
debería ser $ receptor , no $ reciever