Я использую это и (без использования PHPMailer ), надеюсь, это полезно для вас.
<code><form enctype="multipart/form-data" method="POST" action="">
<label>Your Name <input type="text" name="sender_name" /> </label> <br>
<label>Your Email <input type="email" name="sender_email" /> </label> <br>
<label>Subject <input type="text" name="subject" /> </label> <br>
<label>Message <textarea name="message"></textarea> </label> <br>
<label>Attachment <input type="file" name="my_file" /></label><br>
<label><input type="submit" name="button" value="Submit" /></label>
</form>
<?php
echo "<pre>";print_r($_REQUEST);echo "
"; // прокомментируйте эту строку echo"
";print_r($_FILES);echo "
"; //закомментируйте эту строку, если ($ _ POST && isset ($ _ FILES ['my_file'])) {$ from_email = 'noreply@your_domain.com'; // из почты, это обязательно для некоторых хостов $ receient_email = 'your-emailid @gmail.com '; // электронная почта получателя (в большинстве случаев это ваша личная электронная почта) // Захват данных POST из формы HTML и их очистка, $ sender_name = filter_var ($ _ POST ["sender_name"], FILTER_SANITIZE_STRING); // имя отправителя$ reply_to_email = filter_var ($ _ POST ["sender_email"], FILTER_SANITIZE_STRING); // электронная почта отправителя, используемая в заголовке "reply-to" $ subject = filter_var ($ _ POST ["subject"], FILTER_SANITIZE_STRING); // получить тему из HTMLform // $ message = filter_var ($ _ POST ["message"], FILTER_SANITIZE_STRING); // message $ message = "Имя:". $ sender_name. "\ nMessage:". $ _ POST ["message"]; // сообщение// Получить данные загруженного файла $ file_tmp_name = $ _FILES ['my_file'] ['tmp_name']; $ file_name = $ _FILES [ 'my_file'] [ 'имя'];$ file_size = $ _FILES ['my_file'] ['size'];$ file_type = $ _FILES ['my_file'] ['type'];$ file_error = $ _FILES ['my_file'] ['error'];if ($ file_error> 0) {die ('Ошибка загрузки или файлы не загружены');} // чтение из загруженного файла и содержимого base64_encode для почты $ handle = fopen ($ file_tmp_name, "r");$ content = fread ($ handle, $ file_size);fclose ($ ручка);$ encoded_content = chunk_split (base64_encode ($ content));$ border = md5 ("sanwebe");// headers $ headers = "MIME-Version: 1.0 \ r \ n";$ headers. = "From:". $ from_email. "\ r \ n";$ headers. = "Reply-To:". $ reply_to_email. ""."\ Г \ п";$ headers. = "Content-Type: multipart / mixed; border = $ border \ r \ n \ r \ n";// текст body $ body = "- $ border \ r \ n";$ body. = "Content-Type: text / plain; charset = ISO-8859-1 \ r \ n";$ body. = "Content-Transfer-Encoding: base64 \ r \ n \ r \ n";$ body. = chunk_split (base64_encode ($ message));// файл вложения $ body. = "- $ border \ r \ n";$ body. = "Content-Type: $ file_type; name =". $ file_name. "\ r \ n";$ body. = "Content-Disposition: attachment; filename =". $ file_name. "\ r \ n";$ body. = "Content-Transfer-Encoding: base64 \ r \ n";$ body. = "X-Attachment-Id:" .rand (1000,99999). "\ r \ n \ r \ n";$ body. = $ encoded_content;$ sentMail = @mail ($ receient_email, $ subject, $ body, $ headers);if ($ sentMail) // выводить сообщения об успехах или неудачах {die ('Спасибо за ваше письмо');} else {die («Не удалось отправить почту!»);}}?>