code for sending mail with attachment

Discussion in 'PHP' started by rrn, May 26, 2009.

  1. #1
    in my website there is a form for entering details and attaching resume.

    code is given below


    $fileatt =/.'resume/'.$_FILES['userfile']['name'] ; // Path to the file
    $fileatt_type = "application/octet-stream"; // File Type
    $fileatt_name = "CV".$_POST['name'].".doc"; // Filename that will be used for the file as the attachment
    $email_from = $_POST['name']." ".$_POST['email']; // Who the email is from
    $email_subject = 'Application';
    $email_message ='
    			<table cellpadding="3" cellspacing="1" border="0" width="600">
                                                                                         
                                                                                          <tr>
    					<td width="120">Name</td>
    					<td>'.$_POST[name].'</td>
    				</tr>
    				<tr>
    					<td width="120">Age</td>
    					<td>'.$_POST[age].'</td>
    				</tr>
    				<tr>
    					<td width="120">Date of Birth</td>
    					<td>'.$_POST[date].'/'.$_POST[month].'/'.$_POST[year].'</td>
    				</tr>
    				<tr>
    					<td width="120">Gender</td>
    					<td>'.$_POST[gender].'</td>
    				</tr>
                                                                                             <tr>
    					<td width="120">Nationality</td>
    					<td>'.$_POST[nation].'</td>
    				</tr>
    				<tr>
    					<td width="120">Country of Residence</td>
    					<td>'.$_POST[country].'</td>
    				</tr>
                                                                                           <tr>
    					<td width="120">Contact Telephone</td>
    					<td>'.$_POST[phone].'</td>
    				</tr>
                                                                                            <tr>
    					<td width="120">Email</td>
    					<td>'.$_POST[email].'</td>
    				</tr>
    				<tr>
    					<td width="120">Applying For</td>
    					<td>'.$_POST[applyfor].'</td>
    				</tr>
                   			</table>
    				';
    $email_to  = 'abc@xxx.com';
    
    //adds the e-mail address of the sender
    $headers = "From: ".$_POST[email];
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
    
    $headers .= "\nMIME-Version: 1.0\n" .
    "Content-Type: multipart/mixed;\n" .
    " boundary=\"{$mime_boundary}\"";
    
    $email_message .= "This is a multi-part message in MIME format.\n\n" .
    "--{$mime_boundary}\n" .
    "Content-Type:text/html; charset=\"utf-8\"\n" .
    "Content-Transfer-Encoding: 7bit\n\n" .
    $email_message . "\n\n";
    
    $file = fopen($fileatt,'rb');
    $data = fread($file,filesize($fileatt));
    fclose($file);
    
    
    $data = chunk_split(base64_encode($data));
    
    $email_message .= "--{$mime_boundary}\n" .
    "Content-Type: {$fileatt_type};\n" .
    " name=\"{$fileatt_name}\"\n" .
    
    "Content-Transfer-Encoding: base64\n\n" .
    $data . "\n\n" .
    "--{$mime_boundary}\n";
    unset($data);
    unset($file);
    unset($fileatt);
    unset($fileatt_type);
    unset($fileatt_name);
    
    @mail($email_to, $email_subject, $email_message,  $headers);
    PHP:
    the code is working fine ,details along with the attachment is received in the mail.
    but the problem is , users can only attach word document . if any pdf file or txt file is attached , it is not able to open the file from the mail id.

    tried many ways , didnt work.

    please helpe to solve this..
    any help will be appreciated.
     
    rrn, May 26, 2009 IP
  2. HorseGalleria

    HorseGalleria Peon

    Messages:
    91
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Are you open to using a third part class to do you mailing? If so, it may simply your attachment process.

    http://swiftmailer.org/
     
    HorseGalleria, May 26, 2009 IP
  3. Topunit

    Topunit Peon

    Messages:
    95
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Maybe the content-type should be the mime-type of the attachment itself.
     
    Topunit, May 26, 2009 IP
  4. Sabbir

    Sabbir Banned

    Messages:
    210
    Likes Received:
    6
    Best Answers:
    0
    Trophy Points:
    58
    #4
    Sabbir, May 26, 2009 IP
  5. rrn

    rrn Peon

    Messages:
    54
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #5
    thanks for all who gave suggestions , now its working.....

    but ther's another problem.i am receiving one more attachment along with the real attachment. is there any problem with the code.??
     
    rrn, May 27, 2009 IP