phpbar.de logo

Mailinglisten-Archive

[php] Formmailer mit Attachmentfunktion

[php] Formmailer mit Attachmentfunktion

Reinhold Jordan php_(at)_phpcenter.de
Fri, 14 Jun 2002 15:19:49 +0200


Hi,

> Hat jemand eine Klasse oder ein PHP-Script zur Hand mit dem über ein
> HTML-Forumular eine Datei .. am besten ein Bild .jpg und .gif reichen,
> an den Seitenbetreiber verschickt werden kann?

wenn Du nur den Seitenbetreiber erreichen willst, reicht ja der Upload.
Per Mail verschicken mußt Du dann eigentlich nicht mehr...

> Am liebsten wäre mir die einfache mail() - Variante, oder was einfach zu
> konfigurierendes mit smtp...denn da hab ich leider wenig Ahnung von.

Das Script hier bastelt eine Mail mit Attachment zusammen. Ist leider
net so doll dokumentiert...

<?
        
if ($Attachment_name != "") {
        $fd = fopen($Attachment, "r");
        $contents = fread( $fd, $Attachment_size);
        fclose($fd);
        
        $boundary=md5(uniqid(rand()));
        }

$mid=md5(uniqid(rand()));
$mid=substr($mid,0,8).".".substr($mid,8,8);
$mid="$mid_(at)_$SERVER_NAME";

$ph     =popen("/usr/lib/sendmail -t","w");

if ($ph) {
        fputs($ph, "Return-Path: $mailfrom\n");
        fputs($ph, "To: ".$nameto."\n");
        fputs($ph, "From: ".$mailfrom."\n");
        fputs($ph, "Subject: ".$subjectt."\n");
        fputs($ph, "MIME-Version: 1.0\n");
        fputs($ph, "Message-ID: <$mid>\n");
        
        if ($Attachment_name != "") {
                fputs($ph, "Content-Type: multipart/mixed;\n");
                fputs($ph, " boundary=\"------------$boundary\"\n");
                fputs($ph, "\n");
                fputs($ph, "This is a multi-part message in MIME format.\n");
                fputs($ph, "--------------$boundary\n");
                }
        
        fputs($ph, "Content-type: text/plain; charset=ISO-8859-1\n");
        fputs($ph, "Content-transfer-encoding: Quoted-printable\n");
        fputs($ph, "\n");
        fputs($ph, "\n".$text."\n");
        fputs($ph, "\n");
        if ($Attachment_name != "") {
                fputs($ph, "\n--------------$boundary\n");
                fputs($ph, "Content-Type: $Attachment_type\n");
                fputs($ph, "Content-Transfer-Encoding: base64\n");
                fputs($ph, "Content-Disposition: inline; filename=\"$Attachment_name\"\n");
                fputs($ph, "\n");
                fputs($ph, imap_binary($contents));
                fputs($ph, "--------------$boundary--\n");
                }
        
        pclose($ph);
        }
else {
        echo "Beim Versenden der Mail trat ein Fehler auf!\n";
        }

?>
 
> Würde mich sehr über Antworten freuen, ich bekomme es einfach nicht hin.
> Häng schon knapp nen Monat an dem Problem :-(

Das ist zu lang!

Gruß, Reinhold

-- 
                       Reinhold Jordan
WWW: http://reinhold.bachrain.de    Mail: reinhold_(at)_bachrain.de
"Do you pine for the nice days of minix-1.1, when men were men
and wrote their own device drivers?"                     Linus


php::bar PHP Wiki   -   Listenarchive