function send($subject, $body, $to, $from = 'utskick@faceways.se', $attachments = NULL, $html = TRUE, $charset = "iso-8859-1") { /* Set the SMTP headers for recipient and senders. */ $headers = "From: {$from}\n"; $headers .= "Reply-To: {$from}\n"; /* Generate a unique boundary string. */ $BREAK_BOUNDARY = md5('BREAK' . date('Y-m-d H:i:s')); /* Set the SMTP headers to use HTML. */ $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"{$BREAK_BOUNDARY}\"\n"; /* Set the language of the content. */ $headers .= "Content-Language: sv-SE\n"; /* Set the mail client field. */ $headers .= "X-Mailer: Interfaceways v1.x\n"; /* Mark the end of the headers. */ $headers .= "\n"; /* Introduce the message for those who do not have a capable client. */ $message = "Det här är ett flerdelat meddelande i MIME-format.\n"; $message .= "\n"; /* Split the message. */ $message .= "--{$BREAK_BOUNDARY}\n"; if($html) { /* Set message headers for the HTML version of the message. */ $message .= "Content-Type: text/html; charset={$charset}\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "\n"; /* Wrap the message in a html tag-set. */ $message .= "{$subject}\n"; $message .= "{$body}\n"; $message .= "\n"; $message .= "\n"; } else { /* Set message headers for the HTML version of the message. */ $message .= "Content-Type: text/plain; charset={$charset}\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "\n"; /* Set the message text. */ $message .= "{$body}\n"; $message .= "\n"; } /* Create a resource to PECL Fileinfo. */ //$file_info = finfo_open(FILEINFO_MIME); /* Iterate over each file attachment. */ foreach((array) $attachments as $attachment) { /* Split the message. */ $message .= "--{$BREAK_BOUNDARY}\n"; /* If the attachment is a file.. */ if(file_exists($attachment)) { /* moved in here */ $file_info = finfo_open(FILEINFO_MIME); /* Read the file mime type, name etc. */ $file_mime_type = finfo_file($file_info, $attachment); $file_name = basename($attachment); /* moved in here */ finfo_close($file_info); /* Set the headers for the file attachment. */ $message .= "Content-Type: {$file_mime_type}; name=\"{$file_name}\"\n"; $message .= "Content-Disposition: attachment; filename=\"{$file_name}\"\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= "\n"; /* Encode the attached file into base64 and split it up to fit on a line. */ $message .= chunk_split(base64_encode(file_get_contents($file))); $message .= "\n"; } else { /* Read the file mime type, name etc. */ $file_mime_type = $attachment['file_mime_type']; $file_name = $attachment['file_name']; /* Set the headers for the file attachment. */ $message .= "Content-Type: {$file_mime_type}; name=\"{$file_name}\"\n"; $message .= "Content-Disposition: attachment; filename=\"{$file_name}\"\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= "\n"; /* Encode the attached file into base64 and split it up to fit on a line. */ $message .= chunk_split(base64_encode($attachment['data'])); $message .= "\n"; } } /* Free the resource to PECL Fileinfo. */ //finfo_close($file_info); /* End the message. */ $message .= "--{$BREAK_BOUNDARY}--\n"; /* Send the actual message. */ mail($to, $subject, $message, $headers); }