Emie: dateien versenden

hallo zusammen! wie kann ich eine datei (*.jpg) an eine email versenden? soll eine art "postkarte" werden... habt ihr ein skript (cgi) dazu zur hand?

und zwar soll das so passieren, dass der user ein bild auswählt, die email adresse des empfängers eingibt, und die datei mit einer email versendet wird. bei den scripts, die ich gefunden habe, ist es ja so, das nur der link zur "abholung" der postkarte versendet wird.

ich hoffe ihr wisst was ich meine

danke im voraus!

  1. Halihallo

    hallo zusammen! wie kann ich eine datei (*.jpg) an eine email versenden? soll eine art "postkarte" werden... habt ihr ein skript (cgi) dazu zur hand?

    und zwar soll das so passieren, dass der user ein bild auswählt, die email adresse des empfängers eingibt, und die datei mit einer email versendet wird. bei den scripts, die ich gefunden habe, ist es ja so, das nur der link zur "abholung" der postkarte versendet wird.

    MIME::Entity -> build, attach
    Mail::Mailer -> send...

    sorry, Script hab ich nicht zur Hand und will auch keines schreiben ;)
    Aber mit desen Tipps solltest du es selber schaffen (halt etwas Perl vorausgesetzt)

    Viele Grüsse

    Philipp

    1. Halihallo (dieses mal etwas informativer ;-))

      MIME::Entity -> build, attach
      Mail::Mailer -> send...

      war vielleicht etwas wenig:

      aus der Doku zu MIME::Entity:
          ### Create an entity:
          $top = MIME::Entity->build(From    => 'me@myhost.com',
                                     To      => 'you@yourhost.com',
                                     Subject => "Hello, nurse!",
                                     Data    => @my_message);

      ### Attach stuff to it:
          $top->attach(Path     => $gif_path,
                       Type     => "image/gif",
                       Encoding => "base64");

      aus sendmail (Linuxprogi zum versenden von E-Mails)

      my $sendmail = "/usr/sbin/sendmail -t";

      open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
      print SENDMAIL $content;
      close(SENDMAIL);

      zusammengesetzt:

      my @message = ('Hallo xxx,', 'Hier die Postkarte...');
      my $to = 'receiver@email.com';
      my $from = 'you@you.com';
      my $file = './jpeg-files/postcard001.jpeg';
      my $sendmail = "/usr/sbin/sendmail -t";

      $top = MIME::Entity->build(From    => $from,
                                     To      => $to,
                                     Subject => $subj,
                                     Data    => @message);

      ### Attach stuff to it:
          $top->attach(Path     => $file,
                       Type     => "image/jpeg",
                       Encoding => "base64");

      open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
      print SENDMAIL $top->as_string;
      close(SENDMAIL);

      so sollte das in etwa funktionieren...

      Viele Grüsse

      Philipp
         <-- heute mal als unprofessioneller Codezusammenschnipsler unterwegs :-)

      1. Halihallo (und jetzt noch fertig)

        use CGI;
        use MIME::Entity;

        my $cgi = new CGI;
        my @message = $cgi->param('message');
        my $to = $cgi->param('to');
        my $from = 'you@you.com';
        my $file = './jpeg-files/' . (pop split ///, $cgi->param('jpeg'));
        my $sendmail = "/usr/sbin/sendmail -t";

        $top = MIME::Entity->build(From    => $from,
                                       To      => $to,
                                       Subject => $subj,
                                       Data    => @message);

        ### Attach stuff to it:
            $top->attach(Path     => $file,
                         Type     => "image/jpeg",
                         Encoding => "base64");

        open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
        print SENDMAIL $top->as_string;
        close(SENDMAIL);

        dann kannst du das Script so aufrufen:

        http://www.you.com/cgi-bin/postcard.pl?message=hello%20world&to=bla@bla.com&jpeg=a001.jpeg

        und bla@bla.com sollte jetzt die Karte bekommen...

        Viele Grüsse

        Philipp