J'apprends Perl et je veux créer une application simple qui récupère tous mes emails et les sauvegarde dans un fichier, mais comment je peux faire ça? Merci.Comment enregistrer des e-mails dans un fichier avec Perl?
Répondre
Je l'habitude d'utiliser le following script pour filtrer SpamAssassin battant pavillon e-mail avant FAI commutation:
#!/usr/bin/perl
use strict;
use warnings;
$| = 1;
use constant SEVERITY => 5;
use Mail::POP3Client;
use Term::ReadKey;
my $user = shift;
my $pop = Mail::POP3Client->new(
HOST => '127.0.0.1',
PORT => 9999
);
my $pass = prompt_password();
print "\n";
$pop->User($user);
$pop->Pass($pass);
$pop->Connect or die $pop->Message;
my $count = $pop->Count;
$count >= 0 or die "Failed to get message count.\n";
$count > 0 or die "No messages in mailbox.\n";
my @to_delete;
print "Scanning messages: ";
my $to_delete = 0;
for my $msg_num (1 .. $count) {
my @headers = $pop->Head($msg_num);
for my $h (@headers) {
if($h =~ /^X-Spam-Level: (\*+)/) {
if(SEVERITY <= length $1) {
$to_delete += 1;
$pop->Delete($msg_num);
print "\b*>";
} else {
print "\b->";
}
}
}
}
print "\b ... done\n";
use Lingua::EN::Inflect qw(PL);
if($to_delete) {
printf "%d %s will be deleted. Commit: [Y/N]?\n",
$to_delete, PL('message', $to_delete);
$pop->Reset unless yes();
}
$pop->Close;
print "OK\n";
sub yes {
while(my $r = <STDIN>) {
$r = lc substr $r, 0, 1;
return 1 if $r eq 'y';
next unless $r eq 'n';
last;
}
0;
}
sub prompt_password {
print 'Password: ';
ReadMode 2;
my $pass = ReadLine 0;
ReadMode 0;
chomp $pass;
return $pass;
}
Il est trivial de changer cette façon, il enregistre les messages. Voir Mail::POP3Client.
Merci beaucoup, je vais étudier ce code! –
La réponse à presque toute question est "Trouver le bon module sur CPAN Search".
La plupart des modules sont accompagnés d'exemples dans la documentation et les tests.
Bonne chance, :)
Merci beaucoup! –
Alors que je suis d'accord avec la «réponse» est-ce vraiment une réponse? Il aurait dû chercher le CPAN, mais ne devrions-nous pas, pour faire SO complète et popper, au moins fournir un ensemble fonctionnel de modules qu'il pourrait employer? Je pensais juste que c'était une règle de SO que vous ne liez pas aux moteurs de recherche? Je pourrais toutefois avoir tord. –
Je l'ai lu comme un "RTFM" plus poli. Bien que la RTFM soit évidente, tout le monde ne connaît pas le CPAN (ou à quel point il est expansif). – Ether
- 1. Comment enregistrer les caractères chinois dans un fichier avec Java?
- 2. Comment enregistrer un fichier dans Flex avec Flash 9
- 3. Comment enregistrer des parties correspondantes d'une regex en Perl?
- 4. Enregistrer un fichier avec l'extension .f90
- 5. considérations pour enregistrer des données dans un fichier ou MULTIPLE?
- 6. Enregistrer des Btrees dans un fichier disque et le lire
- 7. Comment charger un fichier dans un hachage Perl?
- 8. Comment enregistrer un contenu TextField à un fichier dans VB
- 9. Comment fusionner des fichiers PDF avec Perl?
- 10. Comment vider efficacement un fichier Perl DBM?
- 11. Comment obtenir des emails colorés de crontab?
- 12. Comment enregistrer la sortie du journal NAnt dans un fichier?
- 13. Enregistrer le fichier avec l'extension appropriée dans l'invite Enregistrer le fichier
- 14. Comment enregistrer le fichier dans un répertoire local
- 15. Comment utiliser ImageIO pour enregistrer plusieurs BufferedImages dans un fichier
- 16. Trouver des emails manquants dans SQL Server
- 17. Comment enregistrer le tas (vidage vers un fichier) dans Eclipse?
- 18. Comment envoyer des emails HTML/CSS?
- 19. Comment arrêter d'envoyer des emails en php?
- 20. postfix: Comment envoyer des emails aux utilisateurs
- 21. Comment envoyer des emails signés depuis java?
- 22. Comment envoyer des emails via un programme C++?
- 23. Comment puis-je remplacer tout £ dans un fichier avec £ avec Perl?
- 24. Comment puis-je extraire XML d'un site Web et enregistrer dans un fichier en utilisant LWP de Perl?
- 25. Valider les emails avec Bash
- 26. git enregistrer des instantanés avec des branches
- 27. Comment enregistrer l'état des variables dans Flash
- 28. Comment enregistrer un fichier en utilisant Eclipse Monkey?
- 29. Comment enregistrer un service avec Mono.ZeroConf?
- 30. Comment extraire un titre HTML avec Perl?
Ne répond pas à votre question, mais avez-vous regardé fetchmail? –