(perl Net::SMTP) échec de l'authentification à l'aide de smtp de gmail serveur
J'ai écrit un script perl pour envoyer des e-mail à l'aide de l'gmail serveur smtp: 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";
Pour 'utilisateur', j'ai mon nom d'utilisateur gmail et pour 'monmotdepasse' j'ai le mot de passe. Mais lorsque j'exécute ce code, il s'arrête à la auth lui-même donner : n'a pas pu authentifier.
Je suis en mesure de se connecter au smtp serever de google que je reçois : 'mx.google.com" comme le résultat de :
print $smtp->domaine,"\n";
Qu'est-ce que je fais de mal? S'il vous plaît aider.
Vous devez vous connecter pour publier un commentaire.
autant que je sache, vous devez utiliser une connexion cryptée à envoyer par gmail, utilisez Net::SMTP::TLS ou Net::SMTP::SSL (avec le port 465)
"Bonjour" n'est pas une adresse e-mail, votre nom d'hôte au lieu
mettez-les dans des guillemets simples
si vous obtenez toujours "n'a pas pu authentifier." assurez-vous que vous avez les modules MIME::Base64 et Authen::SASL installé.
devrait être $récepteur, pas $récepteur
Gmail utilise TLS/STARTTLS sur le port 587, SSL sur le port 465. Veuillez suivre L'envoi de mail par SMTP de Google à partir de Perl. Vous pouvez également utiliser E-mail::Send::SMTP::Gmail. Je vous le recommande car il est beaucoup plus facile à utiliser et possède beaucoup plus de fonctionnalités.