Zum Inhalt springen

Email per Script vom Server abholen!


Empfohlene Beiträge

Ich hab ein kleines Projekt vor und würde da ganz kurz um eure hilfe bitten!

Folgende Situation:

Jemand schickt eine email an die Adresse abc@abc.de

ich will sie per script vom mailserver abholen und als textdatei speichern.

Gibts dazu irgendwelche fertigen scripte oder kann ich da irgendwie per telnet über pop3 die abholen und dann in meinem script weiterverarbeiten?

habt ihr ideen dazu ?

wäre echt super!

danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber klar doch, eben mal kurz zusammengehäckert...


#!/usr/bin/perl -w


use strict;

use Net::POP3;


my $data = {

	    server => 'localhost',          # POP3-Server

	    user   => 'steffen',              # Accountname

	    pass   => 'sag_ich_nicht'    # Paßwort

	   };


# Server kontaktieren, login

my $pop = Net::POP3->new($data->{server}, Timeout => 120);

my $msgno = $pop->login($data->{user}, $data->{pass});

map {

  # Mails holen, speichern und löschen

  print "Speichere Email $_...\n";

  open FH, "> mail_$_.txt" or die "Error: $!\n";

  print FH join '', @{$pop->get($_)};

  close FH;

  $pop->delete($_);

} 1..$msgno unless $msgno == 0;

$pop->quit();

Die Benutzerdaten mußt Du natürlich noch anpassen. Damit's auch richtig funktioniert solltest Du, nachdem Du die Mails verarbeitet hast, die Datein löschen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich bin nervig, aber sorry.

also wenn du mir nocheinmal helfen könntest das wäre echt der hit.

die genaue anforderung wäre das es alles emails abholt und den inhalt (sprich nur den body)

jeder nachricht in hintereinader in nur EINE datei zu schreiben.

ich hab mich jetzt schon ein bischen eingelesen in das ganze aber wie du das programmiert hast bin ich noch nicht ganz dahinter gekommen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Perl ist nun mal write-only.

Ich kann es leider nicht testen, meine aber das wenn du

print FH join '', @{$pop->get($_)};

durch:

print FH join '', @{$pop->Body($_)};

ersetzt, er nur den Body der Mail speichert.

Ich hoffe es funktioniert...

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

windows mit activestate und beim installieren von

ppm install Mail-POP3Client.ppd

bekomme ich dann folgendes:

Installing package 'Mail-POP3Client.ppd'...

Error installing package 'Mail-POP3Client.ppd': Read a PPD for 'Mail-POP3Client.

ppd', but it is not intended for this build of Perl (MSWin32-x86-multi-thread)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir ist grerade noch was eingefallen...

Funktioniert eigentlich das Modul Net::POP3? Man könnte auch die Einlese-Routine soweit ändern, daß Sie nur den Body speichert.

Das Gleiche wie gestern, muß weg zum Kunden - vielleicht heute Abend, ansonsten hoffentlich morgen wieder... :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, wie wär's denn damit?


#!/usr/bin/perl -w



use strict;

use Net::POP3;



my $data = {

	    server => 'localhost',            # POP3-Server

	    user   => 'steffen',              # Accountname

	    pass   => 'sag_ich_nicht'         # Paßwort

	   };



# Server kontaktieren, login

my $pop = Net::POP3->new($data->{server}, Timeout => 120);

my $msgno = $pop->login($data->{user}, $data->{pass});

open FH, "> mail.txt" or die "Error: $!\n";

map {

  print "Speichere Email $_...\n";

  my $body = 0;

  foreach (@{$pop->get($_)}) {

    chomp;

    if($body) {

      print FH "$_\n";

    } else {

      /^\s*$/o and $body = 1;

    }

  }

   $pop->delete($_);

} 1..$msgno unless $msgno == 0;

close FH;

$pop->quit();

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...