send.php
2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
$filename = $_FILES['resume']['name'];
$temp_name = $_FILES['resume']['tmp_name'];
$file_type = $_FILES['resume']['type'];
$filepath = $temp_name;
if (!$_POST['agreed']) {
$r = array('type' => 'error', 'message' => 'Пожалуйста, подтвердите передачу персональных данных');
respond($r);
die;
}
if (!$filename) {
$r = array('type' => 'error', 'message' => 'Пожалуйста, загрузите резюме');
respond($r);
die;
}
$whitelist = array('pdf', 'doc', 'docx');
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if (!in_array($extension, $whitelist)) {
$r = array('type' => 'error', 'message' => 'Поддерживаются только pdf и word файлы!');
respond($r);
die;
}
$user_email = $_POST['email'];
$to = 'mind.it@ya.ru';
$subject = "Отклик на вакансию Менеджера по Контексту";
$message = $_POST['message'] . '<br>';
$message .= $_POST['phone'] . '<br>';
$message .= $_POST['fio'] . '<br>';
$message .= $user_email;
$boundary = "--" . md5(uniqid(time()));
$mailheaders = "MIME-Version: 1.0;\r\n";
$mailheaders .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
// разделитель указывается в заголовке в параметре boundary
$mailheaders .= "From: $user_email <$user_email>\r\n";
$mailheaders .= "Reply-To: $user_email\r\n";
$multipart = "--$boundary\r\n";
$multipart .= "Content-Type: text/html; charset=windows-1251\r\n";
$multipart .= "Content-Transfer-Encoding: base64\r\n";
$multipart .= "\r\n";
$multipart .= chunk_split(base64_encode(iconv("utf8", "windows-1251", $message)));
$fp = fopen($filepath, "r");
if (!$fp) {
$r = array('type' => 'error', 'message' => 'Не удалось открыть файл!');
respond($r);
die;
}
$file = fread($fp, filesize($filepath));
fclose($fp);
$message_part = "\r\n--$boundary\r\n";
$message_part .= "Content-Type: application/octet-stream; name=\"$filename\"\r\n";
$message_part .= "Content-Transfer-Encoding: base64\r\n";
$message_part .= "Content-Disposition: attachment; filename=\"$filename\"\r\n";
$message_part .= "\r\n";
$message_part .= chunk_split(base64_encode($file));
$message_part .= "\r\n--$boundary--\r\n";
// второй частью прикрепляем файл, можно прикрепить два и более файла
$multipart .= $message_part;
if (mail($to, $subject, $multipart, $mailheaders)) {
$r = array('type' => 'success_send', 'message' => 'Отклик на вакансию отправлен, ожидайте обратной связи');
respond($r);
die;
};
if (time_nanosleep(5, 0)) {
unlink($filepath);
}
function respond($val)
{
$response = json_encode($val);
echo $response;
return $response;
}