функция 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, я далёк?...ахаха
подозрения у прокурора. А вот ты парень неадекватный. Тебе помогают, а ты ещё и выёжикиваешься, хотя сам круглый ноль. "Предоставляю услуги по написанию 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