Author Topic: Externen Frommailer einbinden  (Read 10425 times)

0 Members and 1 Guest are viewing this topic.

Offline $tony

  • Pre-Newbie
  • Posts: 9
    • View Profile
Externen Frommailer einbinden
« on: June 22, 2006, 06:17:32 PM »
hey jungs hab da mal ne frage.

da ich ja meinen usern sehr entgegen kommen will wollte ich einen formmailer einbauen der ihnen erlaubt mir eine mail zusenden mit datei anhang.

soweit so gut aber hätte ich da auch die möglichkeit diese script so einzubinden das der formmailer nur von angemeldeten und eingelogten usern nutzbar ist und der username automatisch in die namen box eingetragen wird?????????

frage erst mal ob dies geht bauer grad noch den formmailer.

Offline honda2000

  • 4images Guru
  • *******
  • Posts: 3.263
    • View Profile
    • Wir machen Internet!
Re: Externen Frommailer einbinden
« Reply #1 on: June 22, 2006, 10:18:12 PM »
dann brauchst du in die contact.php nur noch deinen formmailer einbauen, eben einen mit dateianhang

so zum Beispiel:

Code: [Select]
<?

    $i=0;
    if ( !is_array($HTTP_POST_VARS) ) {
      return;
    }
    reset($HTTP_POST_VARS);
    while(list($key, $val) = each($HTTP_POST_VARS)) {
        $GLOBALS[$key] = $val;
        $val = stripslashes($val);
        if ( $key == "leerzeile" ) {
          $message = $message . "\n";
        }
        else {
          $message = $message . "$key: $val\n";
          #print "<b>$key</b> = $val<br>";
        }
    }
  # Empfänger festlegen  ###########################
    $mailto  = "ADRESSE@test.de";
    $cc      = "";
    $bcc    = "";
  ##################################################

    $subject =  "Ein aussagekräftiger Titel";

    $from    =  $eMail;

  ##### HIER CODE BEGINN FÜR ATTACHMENT ################################################################################
#####

  /* Wenn eine Datei als Anhang ausgewaehlt wurde... */
  if( $datei && $datei != "none" ) {

  /* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
  $datei_content = fread(fopen($datei,"r"),filesize($datei));

  /* Codiere Datei ins BASE64-Format */
  $datei_content = chunk_split(base64_encode($datei_content));

  /* Generiere einen Boundary */
  $boundary = strtoupper(md5(uniqid(time())));

  /* Beginne den Mail-Header mit MIME-Mail-Header */
  $mail_header  = "MIME-Version: 1.0";
  $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
  $mail_header .= "\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format";

  /* Hier faengt der normale Mail-Text an */
  $mail_header .= "\n--$boundary";
  $mail_header .= "\nContent-Type: text/plain";
  $mail_header .= "\nContent-Transfer-Encoding: 8bit";
  $mail_header .= "\n\n$message";

  /* Hier faengt der Datei-Anhang an */
  $mail_header .= "\n--$boundary";
  $mail_header .= "\nContent-Type: application/octetstream; name=\"$datei_name\"";
  /* Codierung immer BASE64 */
  $mail_header .= "\nContent-Transfer-Encoding: base64";
  $mail_header .= "\nContent-Disposition: attachment; filename=\"$datei_name\"";
  $mail_header .= "\n\n$datei_content";

  /* Gibt das Ende der eMail aus */
  $mail_header .= "\n--$boundary--";
  }
  /* Sende eMail und gebe Fehler bzw. Bestaetigung aus */
  # if(mail($an,$subject,"",$mail_header)) echo "Die eMail mit dem Betreff ".htmlentities($subject)." wurde an ".htmlentities($an)." gesendet.";
  # else echo "Es ist ein Fehler beim senden der eMail aufgetreten.";

    ##### HIER CODE ENDE FÜR ATTACHMENT ################################################################################
#######

    if( $datei && $datei != "none" ) {
      mail( "$mailto",  "$subject",  "",  "From:$from\nCC:$cc\nBCC:$bcc\n$mail_header\n" );
    }
    else {
      mail( "$mailto",  "$subject",  "$message",  "From:$from\nCC:$cc\nBCC:$bcc\n" );
    }

    # Autoresponder  #############################################################
      $filename = "answer.txt"; # Antworttext ###################################
      $fd = fopen( $filename, "r" );
      $contents = fread( $fd, filesize( $filename ) );
      fclose( $fd );
      mail( "$eMail", "Danke für Ihre eMail", "$contents\n\n",
            "From:ADRESSE@test.de\n" );
    ###############################################################################
?> &nbsp;

<TABLE BORDER=0 WIDTH="100%" >
<TR>
<TD>
<CENTER>&nbsp;</CENTER>
</TD>
</TR>

<TR>
<TD>
<CENTER>
      </CENTER>
</TD>
</TR>

<TR>
<TD>&nbsp;</TD>
</TR>
</TABLE>

<CENTER>&nbsp;</CENTER>

<TABLE BORDER=0 WIDTH="100%" >
<TR>
<TD>
<CENTER>
        <B><FONT FACE="Verdana"><FONT COLOR="#000099">Vielen Dank f&uuml;r Ihre
        E-Mail!</FONT></FONT></B>
      </CENTER>
</TD>
</TR>
</TABLE>

<CENTER>&nbsp;</CENTER>

<TABLE BORDER=0 WIDTH="100%" >
  <TR>
    <TD>
      <CENTER>
        <B><FONT FACE="Verdana"><FONT COLOR="#000099"><FONT SIZE=-1>Wir haben
        Ihre Nachricht erhalten und werden diese sofort bearbeiten.</FONT></FONT></FONT></B>
      </CENTER>
      </TD>
  </TR>
  <TR>
    <TD>
      <div align="center"><b><font face="Verdana"><font color="#000099"><font size=-1>Sie
        erhalten automatisch eine E-Mail als Best&auml;tigung Ihrer Nachricht.</font></font></font></b></div>
    </TD>
  </TR>
  <TR>
    <TD>&nbsp;</TD>
  </TR>
  <TR>
    <TD>
      <div align="center"><b><font face="Verdana"><font color="#000099"><font size=-1>-
        Das VfB-Hockey Team -</font></font></font></b> </div>
    </TD>
  </TR>
</TABLE>

<CENTER>&nbsp;</CENTER>

<TABLE BORDER=0 WIDTH="100%" >
<TR>
<TD>
<CENTER>
      </CENTER>
</TD>
</TR>
</TABLE>

oder so:

Code: [Select]
<?
   $from = $_POST['empfaenger'];
   $subject = "Mail mit Anhang";
   $datei = "mail.txt";
   $message = "Sender IP: $_SERVER['REMOTE_ADDR']\n\nHier die gewünschte Datei";

   if (!empty($empfaenger)) {

      // Ab hier nix mehr ändern!!!
      $datei_content = fread(fopen($datei,"r"), filesize($datei));
      $datei_content = chunk_split(base64_encode($datei_content));
      $boundary = strtoupper(md5(uniqid(time())));

      // Beginne den Mail-Header mit MIME-Mail-Header
      $mail_header = "From: ".$from;
      $mail_header .= "\nMIME-Version: 1.0";
      $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
      $mail_header .= "\n\nThis is a multi-part message in MIME format -- ";
      $mail_header .= "Dies ist eine mehrteilige Nachricht im MIME-Format";

      // Hier faengt der normale Mail-Text an
      $mail_header .= "\n--$boundary";
      $mail_header .= "\nContent-Type: text/plain";
      $mail_header .= "\nContent-Transfer-Encoding: 8bit";
      $mail_header .= "\n\n$message";

      // Hier faengt der Datei-Anhang an
      $mail_header .= "\n--$boundary";
      $mail_header .= "\nContent-Type: application/x-zip-compressed; name=\"".$datei."\"";

      // Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus
      $mail_header .= "\nContent-Transfer-Encoding: base64";
      $mail_header .= "\nContent-Disposition: attachment; filename=\"".$datei."\"";
      $mail_header .= "\n\n$datei_content";

      // Gibt das Ende der eMail aus
      $mail_header .= "\n--$boundary--";

      if (mail($empfaenger, $subject, $message, $mail_header))
         $status = "mail gesendet!";
      else
         $status = "fehler!";

      echo "$status<BR><BR>";

   }   

?>

<form action="<?php echo $PHP_SELF?>" method="post">
  Deine Mail Adresse:<BR>
  <input type="Text" name="empfaenger" size="30">
  <input type="Submit" name="senden" value="Senden">
</form>

oder einfach mal google: formmailer mit dateianhang oder formmailer+attachement suchen, zig hunderte





Offline $tony

  • Pre-Newbie
  • Posts: 9
    • View Profile
Re: Externen Frommailer einbinden
« Reply #2 on: June 22, 2006, 10:44:00 PM »
dann brauchst du in die contact.php nur noch deinen formmailer einbauen, eben einen mit dateianhang

wo finde ich die den habe mal nachgeschaut eine  contact.php habe ich nicht gefunden.

und das müsste reichen die dann dort mit den neuen daten zuerstezen?

Offline honda2000

  • 4images Guru
  • *******
  • Posts: 3.263
    • View Profile
    • Wir machen Internet!
Re: Externen Frommailer einbinden
« Reply #3 on: June 23, 2006, 08:37:58 AM »
sorry, der mailer kommt natürlich in die contakt_mailform.html

trotzdem: die contack.php kommt ins root (steht auch so in der beschreibung)

einige hundert haben den MOD installiert, weis jetzt ekinen aus dem kopf, deshalb meine URL zum Formular: http://www.thomas-heydel.de/galerie/contact.php?

so siehts aus (ohne Attachement-Anhang)
« Last Edit: June 23, 2006, 09:55:05 AM by honda2000 »

Offline honda2000

  • 4images Guru
  • *******
  • Posts: 3.263
    • View Profile
    • Wir machen Internet!
Re: Externen Frommailer einbinden
« Reply #4 on: June 23, 2006, 09:59:45 AM »
stimmt Ivan, trozdem nochmal der Anhang, eh wieder Probleme mit der contactform_mesage.html auftreten, hier der komplette" MOD

Offline honda2000

  • 4images Guru
  • *******
  • Posts: 3.263
    • View Profile
    • Wir machen Internet!
Re: Externen Frommailer einbinden
« Reply #5 on: June 25, 2006, 09:57:40 PM »
Quote
die datei: email.php legst du in den ordner includes

und die datei contakt.php legst du in den ordner root der galerie bzw. deiner webseite, dort wo die index liegt.  passe vorher die zeilen 74 bis 76(75) an deine seite und deine e-mail-addi an!

steht in der beigefügten readme.txt

wenn du jetzt einen anderen formmailer nutzt (ist ja NULL-Problem)

musst du die contact.php anpassen UND (eventuell auch) deinen Formmailer