Avatar billede perh Juniormester
16. oktober 2000 - 20:16 Der er 8 kommentarer og
1 løsning

hvordan attaches i Mail, + send fil en gang i døgnet?

Jeg har fundet dette gode script her:

unless (STDIN >> 8 & 0x00ff) {

    read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});

    }

if (length($buffer) < 3) {

    $buffer = $ENV{QUERY_STRING};

    }

if (length($buffer) < 1) {

    $buffer = join(\'&\',@ARGV);

    }

@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {

    ($name, $value) = split(/=/, $pair);

    $value =~ tr/+/ /;

    $value=~ s/%(..)/pack(\"C\",hex($1))/eg;

    push (@file, \"$name=$value\");
    }
$indhold = join (\';\',@file);
open (DATA,\">>filnavn.txt\");
print DATA $indhold;
close (DATA);
$mailprog = \' /usr/sbin/sendmail\';           

    open(MAIL,\"|$mailprog -t\");
    print MAIL \"To: $emailadressenninput fra $ENV{\'HTTP_HOST\'}:n$indhold\";
close (MAIL);

exit;


-------

Jeg vil gerne have det udbygget så det attacher filen og sender en mail een gang i døgnet , f.eks. kl 08.00 og derefter tømmer filen, gerne ved at appende den til en backup-fil???
Kan vi det?
Avatar billede perh Juniormester
18. oktober 2000 - 22:36 #1
Er der nogen, der ved hvordan man skriver i scriptet at der skal attaches en bestemt fil fra serveren?

Er der nogen, der ved hvordan man skriver et script, der sender en email en gang i døgnet?

Jeg forhøjer point og deler dem på de to spørgsmål.
Avatar billede kibeha Nybegynder
10. november 2000 - 13:21 #2
Attachments skal følge MIME standard, som egentlig er ret simpel, men det skal følges nøje.

Filen skal indeholde nogle linier, som fortæller at her begynder en attachment. Den attachede fil\'s indhold skal så pastes ind, men det skal først køres igennem et program, der hedder \'mimencode\'. Jeg har bøvlet en del med det og har kodet generering af emails med attachede filer fra Concorde XAL, men desværre ikke som Perl, så det hjælper dig nok ikke direkte.

Men jeg kan anbefale dig at oprette en mail-konto på www.hotmail.com . Så tager du og sender en lille mail til den mail-konto, hvori du har attached en fil (send den med Outlook eller hvad du nu ellers foretrækker). På hotmail kan du så i Options/Prefrences for din konto vælge Advanced under punktet Message Headers. Når du så åbner en meddelelse, vil der være et link \'View Email Message-Source\'. Når du bruger det, så ser du indholdet af din email som rå tekst. Det du så skal gøre er at danne en fil med samme layout, og så sende den fil vha. sendmail -t .

Det er ikke et præcist svar, men forhåbentlig kan du komme på sporet til at lave koden, der genererer din mailfil. Hvad angår den anden del, så vil jeg tro du må lave en crontab?
Avatar billede kibeha Nybegynder
10. november 2000 - 15:09 #3
Jeg har fundet ud af, at du med fordel kan benytte modulet MIME::Entity i stedet for. Se beskrivelse på :

http://www.perldoc.com/perl5.6/lib/MIME/Entity.html

Med den kan du lave noget á la det her :

    # Create the top-level, and set up the mail headers:
    $top = MIME::Entity->build(Type    => \"multipart/mixed\",
                              From    => \'me@myhost.com\',
                              To      => \'you@yourhost.com\',
                              Subject  => \"Hello, nurse!\");
   
    # Attachment #1: a simple text document:
    $top->attach(Path=>\"./testin/short.txt\");
   
    # Attachment #2: a GIF file:
    $top->attach(Path        => \"./docs/mime-sm.gif\",
                Type        => \"image/gif\",
                Encoding    => \"base64\");
   
    # Attachment #3: text we\'ll create with text we have on-hand:
    $top->attach(Data => $contents);

Vær opmærksom på, at subjects med danske bogstaver skal behandles specielt. Prøv at se mit svar på spørgsmål :

http://www.eksperten.dk/spm/32789


Hvis ikke det her hjælper dig nok, så prøv om der er nogle andre, der kan hjælpe dig med at udforme koden - måske ham jeg svarer i ovenstående spørgsmål ?
Avatar billede thunderbear Nybegynder
24. november 2000 - 21:33 #4
Modulet \"MIME::Lite\" er meget nemmere at bruge hvis man blot skal sende en enkelt email.

Noget i stil med

perl -MMIME::Lite -e \"MIME::Lite->new(To=>\'thunderbear@bigfoot.com\')->attach(Type=>\'text/html\',Path=>\'RELEASE.html\')->send()\"

skulle formentlig kunne gøre det.
Avatar billede perh Juniormester
24. november 2000 - 21:40 #5
Det ser ud som noget jeg kan bruge.
Jeg har et perlscript på serveren som behandler en form og skriver til en fil.
Hvordan bruger jeg ovenstående inde fra perl scriptet?
Avatar billede thunderbear Nybegynder
24. november 2000 - 21:53 #6
Noget i stil med (utestet)

#/.../perl

use MIME::Lite;

$email = MIME::Lite->new(To=>\'thunderbear@bigfoot.com\')->attach(Type=>\'text/html\',Path=>\'RELEASE.html\');
$email->send();

Der benyttes sendmail som standard.  Se dokumentationen til MIME::Lite for et hav af andre muligheder.
Avatar billede perh Juniormester
25. januar 2001 - 00:30 #7
Jeg har ikke kunnet få det til at virke med mime:lite
Derimod har jeg forsøgt med kibeha s metode og fundet frem til noget anvendeligt.
Avatar billede perh Juniormester
28. februar 2012 - 15:48 #8
lukker
Avatar billede perh Juniormester
28. februar 2012 - 15:49 #9
lukker igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester