J'ai un système qui envoie un e-mail à un utilisateur avec un mot de passe temporaire. J'utilise le script suivant pour sortir l'email mais je cherche un moyen d'extraire le mot de passe et de stocker la valeur dans une variable. Le corps de l'e-mail aura le texte suivant "Votre mot de passe temporaire est" Je voudrais analyser le corps de l'e-mail et extraire. Je suppose que je pourrais utiliser un module d'analyse pour rechercher "Votre mot de passe temporaire est", puis stocker le jeton suivant dans une variable, mais ma connaissance de perl n'est pas terrible. Est-ce que quelqu'un peut-il me montrer la bonne direction?Comment analyser un e-mail pour extraire du texte (mot de passe) et le stocker dans une variable
#!/usr/bin/perl
use Net::POP3;
my $username="user";
my $password="password";
my $host="192.168.17.50";
# Constructors
my $pop = Net::POP3->new($host)||
die "Problem calling Net::PoP->new\n$!\n";
# $pop = Net::POP3->new($host, Timeout => 60);
if ($pop->login($username, $password) > 0) {
my $msgnums = $pop->list; # hashref of msgnum => size
foreach my $msgnum (keys %$msgnums) {
my $msg = $pop->get($msgnum);
my $password = extract_password($msg)||
die "Problem with extract_password\n$!\n";
print $password;
$pop->delete($msgnum);
}
}
$pop->quit;
Cela fonctionne si j'utilise une chaîne prédéfinie qui contient le modèle, mais lorsque je l'exécute sur une variable $ msg, cela ne fonctionne pas. Je pense que je fais quelque chose de mal en assignant différents types de données ou quelque chose. Cela fait longtemps que je n'ai pas fait de programmation sérieuse my $ msg = $ pop-> get ($ msgnum); my $ mot_de_passe = mot de passe_extraction ($ msg) || die "Problème avec extract_password \ n $! \ N"; – Joe
Dans [documentation] (http://perldoc.perl.org/Net/POP3.html), la fonction 'get()' de 'Net :: POP3' renvoie une référence à une liste de lignes de texte. Vous pouvez d'abord les combiner en une chaîne en utilisant 'my $ msg_text = join (" \ n ", @ $ msg)' et ensuite passer à la fonction que j'ai écrite plus haut. –