Hallo,
Ik heb eindelijk een script kunnen vinden met attachment, die relatief makkelijk moet zijn om te wijzigen, maar nu wordt bij deze de bijlage verzonden, maar de tekst (inhoud = $_POST['body']) niet.

Weet iemand waar het aan ligt?
Ik denk dat de code verward is met de bijlage gedeelte maar ik weet iet hoe het te veranderen.

code:

<?
/* Mailer with Attachments */

$action = $_REQUEST['action'];
global $action;

function showForm() {
?>
 
  <form id="sendproject" enctype="multipart/form-data" name="send" method="post" action="<?=$_SERVER['PHP_SELF']?>">
  <input type="hidden" name="action" value="send" />
    <label>Name:</label>
    <input class="text" name="name" size="50" />

    <label>Subject:</label>
    <input class="text" name="subject" size="50" />
    
    <label>Email:</label>
    <input class="text" name="email" size="50" />
    
    <label>Project:</label>
    <input class="text" name="project" size="50" />
    
    <label>Attachment:</label>
    <input class="text" type="file" name="attachment" size="50" />
    
    <label>Message:</label>
    <textarea name="body" rows="10" cols="50"></textarea>
    
    <input type="submit" name="submit" value="Submit" /></p>
    </form>
  
<?
}

function sendMail() {
$MAX_FILE_SIZE = "10000000";
  if (!isset ($_POST['email'])) { //Oops, forgot your email addy!
    die ("<p>Oops!  You forgot to fill out the email address! Click on the back arrow to go back</p>");
  }
  else {
    $name = stripslashes($_POST['name']);
    $subject = stripslashes($_POST['subject']);
    $body = stripslashes($_POST['body']);
    $email = $_POST['email'];
    $attachment = $_FILES['attachment']['tmp_name'];
    $attachment_name = $_FILES['attachment']['name']; 
    if (is_uploaded_file($attachment)) { //Do we have a file uploaded?
      $fp = fopen($attachment, "rb"); //Open it
      $data = fread($fp, filesize($attachment)); //Read it
      $data = chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed
        fclose($fp);
    }
    //Let's start our headers
    $headers = "From: $from_name<" . $email . ">\n";
    $headers .= "Reply-To: <" . $email . ">\n"; 
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n"; 
    $headers .= "X-Sender: $from_name<" . $_POST['from_email'] . ">\n";
    $headers .= "X-Mailer: PHP4\n";
    $headers .= "X-Priority: 3\n"; //1 = Urgent, 3 = Normal
    $headers .= "Return-Path: <" . $_POST['from_email'] . ">\n"; 
    $headers .= "This is a multi-part message in MIME format.\n";
    $headers .= "------=MIME_BOUNDRY_main_message \n"; 
    $headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_message_parts\"\n"; 
    
    $message = "------=MIME_BOUNDRY_message_parts\n";
    $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
    $message .= "Content-Transfer-Encoding: quoted-printable\n"; 
    $message .= "\n"; 
    /* Add our message, in this case it's plain text.  You could also add HTML by changing the Content-Type to text/html */
	$message .= " Het geschreven bericht: \n<br />".$body;
    $message .= "\n"; 
    $message .= "------=MIME_BOUNDRY_message_parts--\n"; 
    $message .= "\n"; 
    $message .= "------=MIME_BOUNDRY_main_message\n"; 
    $message .= "Content-Type: application/octet-stream;\n\tname=\"" . $attachment_name . "\"\n";
    $message .= "Content-Transfer-Encoding: base64\n";
    $message .= "Content-Disposition: attachment;\n\tfilename=\"" . $attachment_name . "\"\n\n";
    $message .= $data; //The base64 encoded message
    $message .= "\n"; 
    $message .= "------=MIME_BOUNDRY_main_message--\n";

    // send the message
    mail("[email protected]", $subject, $message, $headers);
  }
}

switch ($action) {
  case "send":
    sendMail();
    showForm();
    break;
  default:
    showForm();
}

?>

Reageren