Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
http://jokenews.ru/
 Аватар для 6stprod
10 / 10 / 7
Регистрация: 07.02.2013
Сообщений: 179

Загрузка и отправка файла на почту

06.04.2016, 07:54. Показов 2598. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите добавить загрузку файла и его отправку на почту.
Вот код:

PHP
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
<?php
define("MAILTO" , "mail@mail.ru");
define("SUBJECT" , "Заголовок");
 
define("ERROR_MESSAGE" , "Ошибка при отправке сообщения");
 
$message = ' ';
$message .= 'От : ' . $_POST['name'] . "\r\n";
$message .= 'Email : ' . $_POST['email'] . "\r\n";
    
$headers = "От: ".$_POST['name']." <".$_POST['email'].">\r\n" ."Копия: ".$_POST['email']."\r\n";
function validateEmail($email) {
   if(preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
        return true;
   else
        return false;
}
if((strlen($_POST['name']) < 1 ) || (strlen($_POST['email']) < 1 ) || validateEmail($_POST['email']) == FALSE ) {
    echo( ERROR_MESSAGE );
} else {
    if( mail( MAILTO ,  SUBJECT , $message, $headers) ) {
        echo( "Отправлено" );
    } else {
        echo( ERROR_MESSAGE );
    }
}
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2016, 07:54
Ответы с готовыми решениями:

Отправка на почту файла
Ребята Здравствуйте! подскажите пример, как с помощью бат файла отправить на почту файл, подробнее: задача состоит в том, что бы...

Отправка файла на почту
Всем привет! В интернете много искал про отправку файла на почту (Yandex, Mail), но не один из них адекватно не работает! Может, кто...

Отправка файла на почту
Есть bat-файл, который создает текстовик с определенным текстом. Как отправить этот текстовик кому-то на почту? Без сторонних программ,...

4
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
06.04.2016, 10:58
Используйте PHPmailer
0
http://jokenews.ru/
 Аватар для 6stprod
10 / 10 / 7
Регистрация: 07.02.2013
Сообщений: 179
06.04.2016, 13:25  [ТС]
Пифагор, Можно ли сделать это на основе моего кода? PhpMailer мне не подходит по многим причинам
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
06.04.2016, 13:40
Ну, переделывать Ваш код я не особо жажду))
Нашел некий код. Попробуйте его.

index.php
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<HTML> 
<HEAD> 
<TITLE>Отправка сообщения с вложением</TITLE> 
</HEAD> 
<BODY> 
<H3> <center><font color="#1E90FF">Отправка сообщения с вложением</font></H3> 
<center> 
<table width="1" border="0"> 
<form action="simple_mail.php" enctype="multipart/form-data" method="post"> 
<tr><td width="50%">To:</td><td align="right"><input type="text" name="mail_to" maxlength="32"></td></tr> 
<tr><td width="50%">Subject:</td><td align="right"><input type="text" name="mail_subject" maxlength="64"></td></tr> 
<tr><td colspan="2">Сообщение:<br><textarea cols="50" rows="8" name="mail_msg"></textarea></td> 
<tr><td width="50%">Photo:</td><td align="right"><input type="file" name="mail_file" maxlength="64"></td></tr> 
</tr><tr><td colspan="2"><input type="submit" value="Отправить"></td></tr> 
</form> 
</table> 
</center> 
</BODY> 
</HTML>

Обработчик simple_mail.php
Кликните здесь для просмотра всего текста
PHP
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
<?php 
  if(empty($_POST['mail_to'])) exit("Введите адрес получателя"); 
  // проверяем правильности заполнения с помощью регулярного выражения 
  if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com"); 
  $picture = ""; 
  // Если поле выбора вложения не пустое - закачиваем его на сервер 
  if (!empty($_FILES['mail_file']['tmp_name'])) 
  { 
    // Закачиваем файл 
    $path = $_FILES['mail_file']['name']; 
    if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path; 
  } 
  $thm = $_POST['mail_subject'];
  $msg = $_POST['mail_msg'];
  $mail_to = $_POST['mail_to'];
  // Отправляем почтовое сообщение 
  if(empty($picture)) mail($mail_to, $thm, $msg); 
  else send_mail($mail_to, $thm, $msg, $picture); 
  // Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
  function send_mail($mail_to, $thema, $html, $path)   
  { if ($path) {  
    $fp = fopen($path,"rb");   
    if (!$fp)   
    { print "Cannot open file";   
      exit();   
    }   
    $file = fread($fp, filesize($path));   
    fclose($fp);   
    }  
    $name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)  
    $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    $boundary     = "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.  
    $headers    = "MIME-Version: 1.0;$EOL";   
    $headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  
    $headers   .= "From: address@server.com";  
      
    $multipart  = "--$boundary$EOL";   
    $multipart .= "Content-Type: text/html; charset=windows-1251$EOL";   
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   
    $multipart .= $EOL; // раздел между заголовками и телом html-части 
    $multipart .= chunk_split(base64_encode($html));   
 
    $multipart .=  "$EOL--$boundary$EOL";   
    $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";   
    $multipart .= "Content-Transfer-Encoding: base64$EOL";   
    $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";   
    $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла 
    $multipart .= chunk_split(base64_encode($file));   
 
    $multipart .= "$EOL--$boundary--$EOL";   
      
        if(!mail($mail_to, $thema, $multipart, $headers))   
         {return False;           //если не письмо не отправлено
      }  
    else { //// если письмо отправлено
    return True;  
    }  
  exit;  
  }
?>
0
http://jokenews.ru/
 Аватар для 6stprod
10 / 10 / 7
Регистрация: 07.02.2013
Сообщений: 179
06.04.2016, 14:06  [ТС]
Пифагор, это код я уже пробовал, с ним постоянные проблемы. Может быть есть какой то другой вариант? Пытаюсь сам добавить функцию загрузки и отправки файла, но не понимаю всего процесса...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2016, 14:06
Помогаю со студенческими работами здесь

Отправка на почту файла
Исправил. Добавлено через 4 часа 11 минут Теперь я хочу, чтобы мне на почту приходило. Письмо, что бэкап успешен и нет. Вот что...

Отправка файла на почту
Добрый вечер! Помогите, пожалуйста, написать код вот по такой задачке: после тестирования пользователь нажимает на кнопу &quot;отправить...

Отправка динамического файла на почту
Всем привет . Подскажите пожалуйста , как сделать из этого string file = &quot;C:\\Program Files (x86)\\Steam\\ssfn&quot;; ...

SMTP Отправка файла на почту
Здравствуйте! Вот пытаюсь дописать код для отправки файлов на почту, код взял здесь на форуме. Всё дело в том что не отправляет файлы...

Отправка файла бд на электронную почту
Доброго времени суток! Подскажите, пожалуйста: есть задумка (дабы не заморачиваться с репликациями т.к. не удобно в моем случае) на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru