· 9 years ago · Jan 26, 2017, 04:00 PM
1function mail_attachment($path, $filename, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
2
3 $file = $path.$filename;
4 $file_size = filesize($file);
5 $handle = fopen($file, "r");
6 $content = fread($handle, $file_size);
7 fclose($handle);
8 $content = chunk_split(base64_encode($content));
9 $uid = md5(uniqid(time()));
10 $name = basename($file);
11 $header = "From: ".$from_name." <".$from_mail.">rn";
12 $header .= "Reply-To: ".$replyto."rn";
13 $header .= "MIME-Version: 1.0rn";
14 $header .= "Content-Type: multipart/mixed; boundary="".$uid.""rnrn";
15 $header .= "This is a multi-part message in MIME format.rn";
16 $header .= "--".$uid."rn";
17 $header .= "Content-type:text/html; charset=utf-8rn";
18 $header .= "Content-Transfer-Encoding: 7bitrnrn";
19 $header .= $message."rnrn";
20 $header .= "--".$uid."rn";
21 $header .= "Content-Type: application/octet-stream; name="".$filename.""rn"; // use different content types here
22 $header .= "Content-Transfer-Encoding: base64rn";
23 $header .= "Content-Disposition: attachment; filename="".$filename.""rnrn";
24 $header .= $content."rnrn";
25 $header .= "--".$uid."--";
26 if (mail($mailto, $subject, "", $header)) {
27 echo "ПиÑьмо отправлено"; // or use booleans here
28 } else {
29 echo "Ошибка отправки";
30 }
31}
32
33if(isset($_POST['post']))
34{
35if (!empty($_FILES['upload']['tmp_name'])) {
36 $path = $_SERVER['DOCUMENT_ROOT']."/upload/".$_FILES['upload']['name'];
37 if (copy($_FILES['upload']['tmp_name'], $path)){
38 $myFaile = $path;
39 $file_name = $_FILES['upload']['name'];
40 }
41}
42
43
44$to_mail = 'yandex.ru'; // кому пиÑьмо
45$my_path = $_SERVER['DOCUMENT_ROOT'].'/upload/'; //путь до папки Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼
46$my_name = 'Ð˜Ð¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ';
47$my_mail = 'admin@example.com'; // email отправителÑ
48$my_replyto = ''; // копиÑ
49$my_subject = 'ПиÑьмо Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼.';
50$my_message = "ПиÑьмо";
51mail_attachment($my_path, $file_name, $to_mail, $my_mail, $my_name, $my_replyto, $my_subject, $my_message);
52}
53?>
54<form method = "post" enctype="multipart/form-data">
55 <input name="upload" type="file" >
56 <input name = "post" type = "hidden">
57 <button type="submit" class="btn btn-primary">Отправить</button>
58</form>
59
60function send_mail($mail_to, $mail_from, $thema, $html, $path, $file_name){
61 if ($path) {
62 $fp = fopen($path,"rb");
63
64 if (!$fp){
65 $html .= "<br><p>Файл не отправлен!</p>";
66 $file = "";
67 }else{
68 $file = fread($fp, filesize($path));
69 fclose($fp);
70 }
71 }
72
73 $name = $file_name;
74 $EOL = "rn";
75 $boundary = "--".md5(uniqid(time()));
76 $headers = "MIME-Version: 1.0;$EOL";
77 $headers .= "Content-Type: multipart/mixed; boundary="$boundary"$EOL";
78 $headers .= "From: ".$mail_from;
79
80 $multipart = "--$boundary$EOL";
81 $multipart .= "Content-Type: text/html; charset=utf-8$EOL";
82 $multipart .= "Content-Transfer-Encoding: base64$EOL";
83 $multipart .= $EOL;
84 $multipart .= chunk_split(base64_encode($html));
85
86 $multipart .= "$EOL--$boundary$EOL";
87 $multipart .= "Content-Type: application/octet-stream; name="$name"$EOL";
88 $multipart .= "Content-Transfer-Encoding: base64$EOL";
89 $multipart .= "Content-Disposition: attachment; filename="$name"$EOL";
90 $multipart .= $EOL;
91 $multipart .= chunk_split(base64_encode($file));
92
93 $multipart .= "$EOL--$boundary--$EOL";
94
95 if(!mail($mail_to, $thema, $multipart, $headers)){
96 return False;
97 }else {
98 return True;
99 }
100 exit;
101}
102
103$arResult['ok'] = "N";
104$myFaile = "";
105$file_name = "";
106
107if (!empty($_FILES['upload']['tmp_name'])) {
108 $path = $_SERVER['DOCUMENT_ROOT']."/upload/".$_FILES['upload']['name'];
109 if (copy($_FILES['upload']['tmp_name'], $path)){
110 $myFaile = $path;
111 $file_name = $_FILES['upload']['name'];
112 }
113}
114
115$thm = "Тема";
116$mail_to = 'gmail.com';
117$msg = "";
118
119if(empty($myFaile))
120{
121 $arResult['ok'] = "N";
122}
123else
124{
125 if(send_mail($mail_to, $mail_from, $thm, $msg, $myFaile, $file_name))
126 {
127 $arResult['ok'] = "Y";
128 }
129 else
130 {
131 $arResult['ok'] = "N";
132 }
133}
134else
135{
136 $arResult['ok'] = "N";
137}
138
139echo json_encode($arResult);
140die();
141
142function writeMeSubmit(form){
143 //Ñоздаем ÑкземплÑÑ€ клаÑÑ FormData, тут будем хранить вÑÑŽ информацию Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸
144 var formData = new FormData();
145
146 //не забывайти проверить Ð¿Ð¾Ð»Ñ Ð½Ð° заполнение
147 //код проверки полей опуÑтим, он к Ñтатье не имеет отнашение
148
149 //приÑоединÑем наш файл
150 jQuery.each($('#upload')[0].files, function(i, file) {
151 formData.append('upload', file);
152 });
153
154 //приÑоединÑем оÑтальные полÑ
155 formData.append('name', $('input#name3').val());
156 formData.append('email', $('input#email3').val());
157 formData.append('revs', $('textarea#review').val());
158
159 //отправлÑем через ajax
160 $.ajax({
161 url: "/engine/ajax/call3.php",
162 type: "POST",
163 dataType : "json",
164 cache: false,
165 contentType: false,
166 processData: false,
167 data: formData, //указываем что отправлÑем
168 success: function(data){
169 if(data.ok == 'Y'){
170 $("#rez3").fadeIn(500);
171 setTimeout(function(){$("#rez3").fadeOut(500);},5000);
172 }else{
173 $("#err3").fadeIn(500);
174 setTimeout(function(){$("#err3").fadeOut(500);},5000);
175 }
176 }
177 });
178 return false;
179}