Mail naar text of HTML bestand

Pagina: 1
Acties:

  • Sine
  • Registratie: Juni 2001
  • Laatst online: 20-05 19:22
Ik zit met een (ik hoop klein) praktisch probleempje.

Ik wil simpel gezegd alle mailtjes van een pop3 server halen en die in een text bestandje neer zetten

dus een scriptje dat om de x minuten kijkt of er nieuwe mail is en die dan aan een text bestandje toevoegd

Maar ik heb geen flauw id waar en hoe te beginnen

Ik heb al een paar fetchmail howto's doorgebladerd maar ik kan niet echt zeggen dat ik daar veel verder mee kom

iemand tips of aanwijzingen in welke richting ik moet zoeken ?

Repareren doe je zo.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

man crontab

Doet iets met Cloud (MS/IBM)


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Dat gebeurt toch al? doe maar eens cat /var/spool/mail/username :)

Als je locale mail ophaal kun je hiermee misschien wel het makkelijkste verder.

Everyone complains of his memory, no one of his judgement.


  • Wilke
  • Registratie: December 2000
  • Laatst online: 19:12
Toch is dat precies wat fetchmail doet....installeer fetchmail en kijk hoe je een .fetchmailrc maakt, e.d.

Daarna staat de mail idd in /var/spool/mail/<username>

Stukje uit mijn .fetchmailrc:

code:
1
poll havinga.nu proto pop3 user "wilke" with password "ikbennietdom" is wilke here


en zo staan er nog een paar regels in. Het 'is wilke here' zorgt er voor dat de mail verstuurd wordt naar de lokale user 'wilke' en niet naar dezelfde naam als je mail-account (toevallig is dat hier hetzelfde maar tien tegen een dat dat bij jou niet zo is...)

Om de zoveel minuten checken: dit toevoegen aan je crontab ('crontab -e' doen):

code:
1
0/10 * * * * /usr/bin/fetchmail >/dev/null 2>&1


of misschien veiliger omdat bovenstaande niet overal werkt:

code:
1
0,10,20,30,40,50 * * * * /usr/bin/fetchmail >/dev/null 2>&1


Dit checkt dan om de 10 minuten je mail. Voor wat die sterretjes etc. daar verder doen: man crontab. Owja het prog 'fetchmail' zou bij jou wel 'es ergens anders kunnen staan natuurlijk (probeer 'which fetchmail')

  • Sine
  • Registratie: Juni 2001
  • Laatst online: 20-05 19:22
crontab was wel duidelijk ja ...

de enige mail ervaring die ik in linux heb is KMail

maar dit zou dus gewoon met fetchmail moeten kunnen ???

Repareren doe je zo.


  • Sine
  • Registratie: Juni 2001
  • Laatst online: 20-05 19:22
Wilke schreef op 18 september 2002 @ 13:37:
Toch is dat precies wat fetchmail doet....installeer fetchmail en kijk hoe je een .fetchmailrc maakt, e.d.

Daarna staat de mail idd in /var/spool/mail/<username>

Stukje uit mijn .fetchmailrc:

code:
1
poll havinga.nu proto pop3 user "wilke" with password "ikbennietdom" is wilke here


en zo staan er nog een paar regels in. Het 'is wilke here' zorgt er voor dat de mail verstuurd wordt naar de lokale user 'wilke' en niet naar dezelfde naam als je mail-account (toevallig is dat hier hetzelfde maar tien tegen een dat dat bij jou niet zo is...)

Om de zoveel minuten checken: dit toevoegen aan je crontab ('crontab -e' doen):

code:
1
0/10 * * * * /usr/bin/fetchmail >/dev/null 2>&1


of misschien veiliger omdat bovenstaande niet overal werkt:

code:
1
0,10,20,30,40,50 * * * * /usr/bin/fetchmail >/dev/null 2>&1


Dit checkt dan om de 10 minuten je mail. Voor wat die sterretjes etc. daar verder doen: man crontab. Owja het prog 'fetchmail' zou bij jou wel 'es ergens anders kunnen staan natuurlijk (probeer 'which fetchmail')
Kijk .. gaan we meteen proberen :)

Repareren doe je zo.


  • Sine
  • Registratie: Juni 2001
  • Laatst online: 20-05 19:22
Hij zet ze idd mooi in /var/spool/mail neer

nu moet ik alleen nog de headers er uit zien te krijgen en enkel de afzender + boodschap hebben

maar daar valt wel wat voor te verzinnen :)

Repareren doe je zo.


Verwijderd

gewoon in Perl je eigen mailfetcher maken :P

(ja lekkere spaghettie code)

Perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
while ($quit==0)
{
print '1) check mail',"\n";
print '2) read mail',"\n";
print '3) send mail',"\n";
print "\n";
print 'x) quit',"\n";


    $choice = <STDIN>;
    if ($choice=="1") { &check; };
    if ($choice=="x") { &quit; };
}



sub quit
{
exit;
}

sub check
{
    $tel=0;
    $tell0;
    $tel2=0;
    my ($hostname, $line, $passwd, $pop, $username);
    $hostname = "mail.aaplandnet.nl";
    $username = "aap";
    use Net::Telnet ();
    $pop = new Net::Telnet (Telnetmode => 0);
    $pop->open(Host => $hostname,
               Port => 110);

    ## Read connection message.
    $line = $pop->getline;
    die $line unless $line =~ /^\+OK/;
    ## Send user name.
    $pop->print("user $username");
    $line = $pop->getline;
    die $line unless $line =~ /^\+OK/;
    ## Send password.
    print "give your password\:";$passwd = <STDIN>;
    $pop->print("pass $passwd");
    $line = $pop->getline;
    die $line unless $line =~ /^\+OK/;
    ## Request status of messages.
    $pop->print("list");
    $line = $pop->getline;
    do
    {   
        $tel++;
        @mails[$tel] = $pop->getline;
#   print "TEST", $tel, "--", @mails[$tel];     
    } while (@mails[$tel]!=".");



    print "\nmails :",$tel-1,"\n";
    $tell=1;
    while ($tell!=$tel)
    {
        $pop->print("top ",@mails[$tell]);
#   print "getting mail ",  @mails[$tell];
        
    $tel2=0;
        do
        {
            $tel2++;    
            $subject = $pop->getline;
        if ($subject=~/^From/) { $from=$subject; }
        if ($subject=~/^Subject/) { $subject=$subject; }
        #print $subject;
        } while ($subject!~/^Subject/);
        
    
    
    $tel2=0;
    print $tell,". ",$from,$subject,"\n";
    $subject="";
    $from="";
        $tell++;
    }
}



ja het ziet er hier slechter uit dan het er in notepad uit ziet hoor.
kweet ook niet, tabs worden een beetje door enkaar gehaald ofzo.

Verwijderd

Trouwens, fetchmail hoeft niet via cron.
fetchmail -d 300 doet iedere 5 minuten een check. Heb je geen cron bij nodig ;)

[ Voor 0% gewijzigd door Verwijderd op 18-09-2002 14:45 . Reden: ...smilie.... ]

Pagina: 1