функция mail()

1. mix (05.02.2012 / 17:54)
Здравствуйте, подскажите, пожалуйста, почему может не работать функция mail(); в php?
вот моя функция
mail('shavo21@mail.ru', 'lkhjh', 'jjhgytgtgh', 'From:hgf@rutv.ru');
но она, почему-то, не работает.

2. Zдешний (05.02.2012 / 18:17)
Примечание: убедитесь, что у вас нет символов newline в to или в subject, иначе почта может не отправиться корректно.

http://php.su/functions/?f=mail&choice=info

3. mix (05.02.2012 / 18:35)
Zдешний (5 Февраля 2012 / 18:17)
Примечание: убедитесь, что у вас нет символов newline в to или в subject, иначе почта может не отправиться корректно.

http://php.su/functions/?f=mail&choice=info
и что? я читал эту статью
у меня разве есть символы newline?

4. Николай (05.02.2012 / 18:41)
<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>


5. Николай (05.02.2012 / 18:42)
<?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();   
    }   


6. Николай (05.02.2012 / 18:42)
 $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;  
  }
?>
	 
 	 

Добавлено через 00:18 сек.
пользуйся)))

7. mix (05.02.2012 / 18:46)
6. ritlen, да не нужны мне такие громадные функции, мне просто нужно отправить пароль юзера из базы данных к нему на мэйл, который также записан в БД.
мне не нужно отправлять файлы или картинки

8. Hennessy (05.02.2012 / 18:51)
Мдаааа...парень, если ты хочешь, чтобы оно дошло нормально, с нормальной кодировкой, с нормальным отображением, тебе придёться использовать функцию написанную людьми, либо самому написать.

9. mix (05.02.2012 / 18:58)
Hennessy (5 Февраля 2012 / 18:51)
Мдаааа...парень, если ты хочешь, чтобы оно дошло нормально, с нормальной кодировкой, с нормальным отображением, тебе придёться использовать функцию написанную людьми, либо самому написать.
нах мне функцию отправки картинки или файла?
это влияет на "отображение" нормального текста в сообщении?

10. Hennessy (05.02.2012 / 19:02)
Я что-то говорил про файлы и картинки??? Прочитай мой пост...

11. mix (05.02.2012 / 19:05)
Hennessy (5 Февраля 2012 / 19:02)
Я что-то говорил про файлы и картинки??? Прочитай мой пост...
во-первых я к примеру сказал потому, что в "функциях, написанными людьми", есть такая функция.
во-вторых у меня подозрение, что ты далеко от языка программирования php, прошу удалиться из моей темы

12. Николай (05.02.2012 / 19:08)
11. shavo, подправь под себя просто!

13. mix (05.02.2012 / 19:09)
ritlen (5 Февраля 2012 / 19:08)
11. shavo, подправь под себя просто!
хорошо, щас попробую.
спасибо

14. Hennessy (05.02.2012 / 19:12)
11, я далёк?...ахаха smile подозрения у прокурора. А вот ты парень неадекватный. Тебе помогают, а ты ещё и выёжикиваешься, хотя сам круглый ноль. "Предоставляю услуги по написанию php скриптов(WAP/PDA), с использованием mysql баз данных." имхо, это не про тебя. Если ты не умеешь работать с функцией mail, то о чём может идти речь?? То что тебе нужно делается за 2 секунды. Если бы ты был бы программистом php, то смог бы отделить часть кода прикрепления файла и т.д. а оставить только нужное. Но увы. Если бы умел пользоваться поисковиками, ты бы это не спрашивал на форуме, а давно бы уже нашёл решение. Если бы я не знал как это решить - я бы не писал сюда. Если бы я не знал php - я бы не писал сюда. Но раз я написал, значит я готов полностью помочь. Однако, ты у нас парнишка то умный, разберёшься. Бывай.

15. mix (05.02.2012 / 19:21)
14. Hennessy, свою помощь оставь себе, думай, что ты прав и удались с темы хорошо?
мне просто неудобно опуститься на твой уровень и разбирать кто прав, кто - нет.
а, и еще, сверь, пожалуйста мои проекты, написанные с нуля с твоими и поймешь насколько правильная в моем профиле написанная информация.

Добавлено через 01:06 сек.
ritlen (5 Февраля 2012 / 19:08)
11. shavo, подправь под себя просто!
нифига не получилось, раньше пользовался этой функцией, все нормально работало, щас не хочет.
может проблема в денвере?

16. Николай (05.02.2012 / 19:41)
15. shavo, на денвере такие ф-ции редко проверяют! как вариант

17. Hennessy (05.02.2012 / 19:45)
15, фэйспэлм...

18. Николай (05.02.2012 / 19:49)
17. Hennessy, не обращай внимания)))все там рабочее я дал ему! Я ей сам когда то пользовался,вот нашел кодик для людей не жалко!

19. ктулху (05.02.2012 / 19:50)
В денвере стоит заглушка, которая перехватывает отправленные письма и складирует в папочку (реально не отправляя их)

20. Николай (05.02.2012 / 19:52)
19. ShiftBHT, на денвере вроде только канает через HTML -код как то...забыл его)))но не важно!

21. mix (05.02.2012 / 19:54)
мляя, сразу бы))))))))))

22. Николай (05.02.2012 / 19:55)
21. shavo, пашет?

23. mix (05.02.2012 / 19:57)
пробую пока

Добавлено через 01:59 сек.
ritlen (5 Февраля 2012 / 19:55)
21. shavo, пашет?
да, наконец заработало

Добавлено через 03:03 сек.
спасибо всем, тему офф

24. Станислав (05.02.2012 / 22:15)
shavo (5 Февраля 2012 / 19:54)
Здравствуйте, подскажите, пожалуйста, почему может не работать функция mail(); в php?
вот моя функция
mail('shavo21@mail.ru', 'lkhjh', 'jjhgytgtgh', 'From:hgf@rutv.ru');
но она, почему-то, не работает.
Может быть потому, что она отключена на сервере?

Добавлено через 02:06 сек.
ritlen (5 Февраля 2012 / 21:52)
19. ShiftBHT, на денвере вроде только канает через HTML -код как то...забыл его)))но не важно!
ноооооу. Какой html? Даже в документации к денверу стоит, что заглушка там. Всё в папку складывается.

25. Николай (05.02.2012 / 22:26)
24. SNELS, дело не в этом проблема у автора решена уже!

URL: https://visavi.net/topics/29225