www.webdeveloper.com
Results 1 to 5 of 5

Thread: PHP mail attachment problem

Hybrid View

  1. #1
    Join Date
    Mar 2010
    Posts
    60

    PHP mail attachment problem

    Hello all,

    Im using this mail function
    Code:
    <?php
    // Read POST request params into global vars
    $to      = "chapters@letstrywriting.com";
    $from    = "Submission@letstrywriting.com";
    $name    = "Submission";
    $subject = $_POST['subject'];
    $message = "";
    
    $your_name = $_POST['name'];
    $your_email = $_POST['subject'];
    $your_phone = $_POST['message']; 
    
    if (!empty($your_name)) { 
    $message .= 'Your Name: '. $your_name ."\n\n";
    } 
    
    if (!empty($your_name)) { 
    $message .= 'Your Email: '. $your_email ."\n\n";
    } 
    
    if (!empty($your_name)) { 
    $message .= 'Your Phone: '. $your_phone ."\n\n";
    } 
    
    // Obtain file upload vars
    $fileatt		= $_FILES['fileatt']['tmp_name'];
    $fileatt_type	= $_FILES['fileatt']['type'];
    $fileatt_name	= $_FILES['fileatt']['name'];
    
    $headers = "From: $from";
    
    if (is_uploaded_file($fileatt) || is_uploaded_file($fileatt2) || is_uploaded_file($fileatt3)) {
      // Read the file to be attached ('rb' = read binary)
      if (is_uploaded_file($fileatt)) {
      	$file = fopen($fileatt,'rb');
      	$data = fread($file,filesize($fileatt));
      	fclose($file);
    
      	// Base64 encode the file data
      	$data = chunk_split(base64_encode($data));
      }
    
      // Generate a boundary string
      $semi_rand = md5(time());
      $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
      
      // Add the headers for a file attachment
      $headers .= "\nMIME-Version: 1.0\n" .
                  "Content-Type: multipart/mixed;\n" .
                  " boundary=\"{$mime_boundary}\"";
    
      // Add a multipart boundary above the plain message
      $message = "This is a multi-part message in MIME format.\n\n" .
                 "--{$mime_boundary}\n" .
                 "Content-Type: text/plain;\n charset=\"iso-8859-1\"\n" .
                 "Content-Transfer-Encoding: 7bit\n\n" .
                 $message . "\n\n" .
    			 "--{$mime_boundary}\n";
    
      // Add file attachment(s) to the message
      if ($fileatt_name > "") {
      	$message .= "Content-Type: {$fileatt_type};\n" .
             	     " name=\"{$fileatt_name}\"\n" .
                	  "Content-Transfer-Encoding: base64\n" .
               	     "Content-Disposition: attachment;\n" .
               	     " filename=\"{$fileatt_name}\"\n\n" .
                	  $data . "\n" .
                	  "--{$mime_boundary}\n";
    	}
    	
    	$message .=  "--\n\n";	
    }
    
    // Send the message
    $ok = @mail($to, $subject, $message, $headers);
    if ($ok) {
      echo "<p>Mail sent!</p>";
      header("location: subthanks.php");
    } else {
      echo "<p>Mail could not be sent. Sorry!</p>";
      header("location: subbad.php");
    }
    ?>
    It seems to work, however when I go to check the email the file has not attached. The attachment seems to be there but it gives its size as 0kb and doesnt register it with a .filename ending. Could someone show me where im going wrong?

    Thanks in advance.

  2. #2
    Join Date
    Mar 2010
    Posts
    60
    Actually its a problem with the server, could someone mark as solved? Feel free to use this code

  3. #3
    Join Date
    Nov 2012
    Posts
    2
    What was the problem with your server. I am having the same problem and not sure how to fix it

  4. #4
    Join Date
    Mar 2010
    Posts
    60
    Never did solve the server issue. the mail function and the recipient email were hosted on the same server. We set up a work around where the mail function sent an email to an external gmail address, which then forwarded it back to the intended recipient. Works fine and with the added bonus of copies of all emails sent.

    Sorry for not being more helpful.

  5. #5
    Join Date
    Oct 2012
    Posts
    9
    Don't re-invent the wheel. Use PHP Mailer.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles