Jump to content
  • 0

SendMail


Andrey447
 Share

Question

Здравствуйте.

У меня проблема тут с обратной связи, попробовал сам написать, получилось но на почту приходит письмо без данных.

Вот такое письмо приходит:

Здравствуйте.

Вам пришло письмо от пользователя сайта.

Его имя:

Его E-Mail:

Тема письма:

Письмо:

И пусто, без данных ,подскажите, что в коде не так?

Написал вот такой код:

contact.html:

<html>

<head>
<title>Первая страница</title>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
</head>

<body>

<div align="center">
<form action="obrabotka.php" method="POST" name="form1">
<p>
<strong>Ваше имя:</strong><br />
<input type="text" name="username" size="45" maxlength="30"/>
</p>

<p>
<strong>Ваш E-Mail:</strong><br />
<input type="text" name="usermail" size="45" maxlength="40"/>
</p>

<p>
<strong>Тема письма:</strong><br />
<input type="text" name="title" size="45" maxlength="30"/>
</p>

<p>
<strong>Ваше письмо:</strong><br />
<textarea cols="40" name="lili" rows="5"></textarea>
</p>

<input type="submit" name="buttom" value="Отправить письмо администратору"/>


</div>
</body>
</html>

obrabotka.php

<?php
$v = mail("почта","Письмо с сайта от пользователя","Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Его имя: $username \n Его E-Mail: $usermail \n Тема письма: $title \n Письмо: \n $lili","");

if ($v == "true") {echo "Ваше письмо отправлено администратору.";}

?>

Edited by Andrey447
Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

А кавычки?

<?php
$v = mail("Andrey014@list.ru","Письмо с сайта от пользователя","Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Его имя: "$username "\n Его E-Mail: "$usermail "\n Тема письма: "$title "\n Письмо: \n "$lili,"");

if ($v == "true") {echo "Ваше письмо отправлено администратору.";}

?>

Edited by ctpz
Link to comment
Share on other sites

  • 0

Сорри, забыл


<?php
$v = mail("Andrey014@list.ru","Письмо с сайта от пользователя","Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Его имя: ".$username."\n Его E-Mail: ".$usermail."\n Тема письма: ".$title."\n Письмо: \n ".$lili);

if ($v == "true") {echo "Ваше письмо отправлено администратору.";}

?>

Link to comment
Share on other sites

  • 0

Сорри, забыл


<?php
$v = mail("Почта","Письмо с сайта от пользователя","Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Его имя: ".$username."\n Его E-Mail: ".$usermail."\n Тема письма: ".$title."\n Письмо: \n ".$lili);

if ($v == "true") {echo "Ваше письмо отправлено администратору.";}

?>

То же самое, приходит письмо без данных

//Зря почту свою засветил, тут иногда боты бегают, собирают адреса.

Убрал

Используйте $_POST

Спасибо помогло :)

Edited by Andrey447
Link to comment
Share on other sites

  • 0

Еще вопрос по этой же теме.

Как сделать так, чтобы человек мог прикрепить файл к обратной связи?

в HTML

              <p><strong>Файл</strong><br /> 
<input name="attache" type="file" size="28"></p>

А в PHP обработчик что? пол интернета перерыл уже по этому поводу..

Edited by Andrey447
Link to comment
Share on other sites

  • 0

Еще вопрос по этой же теме.

Как сделать так, чтобы человек мог прикрепить файл к обратной связи?

в HTML

              <p><strong>Файл</strong><br /> 
<input name="attache" type="file" size="28"></p>

А в PHP обработчик что? пол интернета перерыл уже по этому поводу..

Странно видать очевидное находится в другой потовине интернета куда вы не заглядывали:

Вот кратенький пример

Ну и подтверждение моих слов: Вот такие слова нужны для поиска во второй половине интернета

Link to comment
Share on other sites

  • 0

Еще вопрос по этой же теме.

Как сделать так, чтобы человек мог прикрепить файл к обратной связи?

в HTML

              <p><strong>Файл</strong><br /> 
<input name="attache" type="file" size="28"></p>

А в PHP обработчик что? пол интернета перерыл уже по этому поводу..

Странно видать очевидное находится в другой потовине интернета куда вы не заглядывали:

Вот кратенький пример

Ну и подтверждение моих слов: Вот такие слова нужны для поиска во второй половине интернета

Подобное уже находил, ничего не получилось..

<?php   
function XMail( $from, $to, $subj, $text, $filename) {
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"———-".$un."\"\n\n";
$zag = "————".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "————".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";

return @mail("$to", "$subj", $zag, $head);
}

XMail('from@hostname','здесь почта', 'Тема письма', 'Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Контактное имя: $name \n Контактный E-Mail: $email \n \n Тема: $subj \n Сообщение: \n $text', 'filename');
?>

Или как?

Link to comment
Share on other sites

  • 0

Если под 'filename' путь к файлу который вы прикрепляете - то да.

А что конкретно у вас не получается ? Ошибки какие-то ? Результат не удовлетворительный ?

Всмысле? файл же с компьютера прикрепляю, и надо чтобы любой смог прикрепить и чтобы он пришел на почту.

Когда нажимаю на кнопку "Отправить" ошибки в файле обработчика:

Warning: fopen(filename) [function.fopen]: failed to open stream: Нет такого файла или каталога in *адрес сайта*/mail.php on line 3

Warning: filesize() [function.filesize]: stat failed for filename in *адрес сайта*/mail.php on line 19

Warning: fread(): supplied argument is not a valid stream resource in *адрес сайта*/mail.php on line 19

На почту приходит такое письмо:

Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Контактное имя: $name \n Контактный E-Mail: $email \n \n Тема: $subj \n Сообщение: \n $text

Хотя вместо $name $email и т.д. должны быть данные которые вводил в HTML форме, а \n должен переводить на новую строку.

И так же файл приходит с именем "filename", а не с именем который я отправил, и весит 0 Б, тоесть файл не отправился...

Link to comment
Share on other sites

  • 0

Если под 'filename' путь к файлу который вы прикрепляете - то да.

А что конкретно у вас не получается ? Ошибки какие-то ? Результат не удовлетворительный ?

Всмысле? файл же с компьютера прикрепляю, и надо чтобы любой смог прикрепить и чтобы он пришел на почту.

Когда нажимаю на кнопку "Отправить" ошибки в файле обработчика:

Warning: fopen(filename) [function.fopen]: failed to open stream: Нет такого файла или каталога in *адрес сайта*/mail.php on line 3

Warning: filesize() [function.filesize]: stat failed for filename in *адрес сайта*/mail.php on line 19

Warning: fread(): supplied argument is not a valid stream resource in *адрес сайта*/mail.php on line 19

На почту приходит такое письмо:

Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Контактное имя: $name \n Контактный E-Mail: $email \n \n Тема: $subj \n Сообщение: \n $text

Хотя вместо $name $email и т.д. должны быть данные которые вводил в HTML форме, а \n должен переводить на новую строку.

И так же файл приходит с именем "filename", а не с именем который я отправил, и весит 0 Б, тоесть файл не отправился...

Либо вставляем 'E-Mail: '.$email.' \n \n Тема:' или кавычки двойные.

А про фаил, хм ... послать вас гуглить чтоли?

В общем из браузера фаил вы не можете в письмо напрямую, так уж повелось. Сначало его надо за аплодить, а потом уже у вас будет ссылка с файла, тогда скрипт его может достать, ну либо напрямую с сервера либо по http либо по фтп но ни как через браузер напрямую

Link to comment
Share on other sites

  • 0

Если под 'filename' путь к файлу который вы прикрепляете - то да.

А что конкретно у вас не получается ? Ошибки какие-то ? Результат не удовлетворительный ?

Всмысле? файл же с компьютера прикрепляю, и надо чтобы любой смог прикрепить и чтобы он пришел на почту.

Когда нажимаю на кнопку "Отправить" ошибки в файле обработчика:

Warning: fopen(filename) [function.fopen]: failed to open stream: Нет такого файла или каталога in *адрес сайта*/mail.php on line 3

Warning: filesize() [function.filesize]: stat failed for filename in *адрес сайта*/mail.php on line 19

Warning: fread(): supplied argument is not a valid stream resource in *адрес сайта*/mail.php on line 19

На почту приходит такое письмо:

Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Контактное имя: $name \n Контактный E-Mail: $email \n \n Тема: $subj \n Сообщение: \n $text

Хотя вместо $name $email и т.д. должны быть данные которые вводил в HTML форме, а \n должен переводить на новую строку.

И так же файл приходит с именем "filename", а не с именем который я отправил, и весит 0 Б, тоесть файл не отправился...

Либо вставляем 'E-Mail: '.$email.' \n \n Тема:' или кавычки двойные.

А про фаил, хм ... послать вас гуглить чтоли?

В общем из браузера фаил вы не можете в письмо напрямую, так уж повелось. Сначало его надо за аплодить, а потом уже у вас будет ссылка с файла, тогда скрипт его может достать, ну либо напрямую с сервера либо по http либо по фтп но ни как через браузер напрямую

Либо вставляем 'E-Mail: '.$email.' \n \n Тема:' или кавычки двойные.

Одно и то же, не помогло.

В общем из браузера фаил вы не можете в письмо напрямую, так уж повелось.

Тогда как люди смогут вообще прикреплять файлы к обрнатой связи?

Link to comment
Share on other sites

  • 0
Либо вставляем 'E-Mail: '.$email.' \n \n Тема:' или кавычки двойные.

Одно и то же, не помогло.

Не верю (с) Станиславский

Значит не так сделали

В общем из браузера фаил вы не можете в письмо напрямую, так уж повелось.

Тогда как люди смогут вообще прикреплять файлы к обрнатой связи?

Обычно процес происходит так: Фаил через браузер закачивается на сервер, потом с сервера читается преобразовывается присоединяется к письму, письмо отправляется и фаил удаляется.

Link to comment
Share on other sites

  • 0

Сорри, забыл


<?php
$v = mail("Почта","Письмо с сайта от пользователя","Здравствуйте. \n Вам пришло письмо от пользователя сайта. \n Его имя: ".$username."\n Его E-Mail: ".$usermail."\n Тема письма: ".$title."\n Письмо: \n ".$lili);

if ($v == "true") {echo "Ваше письмо отправлено администратору.";}

?>

То же самое, приходит письмо без данных

//Зря почту свою засветил, тут иногда боты бегают, собирают адреса.

Убрал

Используйте $_POST

Спасибо помогло :)

Такая же проблема. А куда вставить то это $_POST?

Link to comment
Share on other sites

  • 0

Такая же проблема. А куда вставить то это $_POST?

Есть одно место ;)

а вообще в соседней ветке e_skabar я тебе намекнул...

и совсем отвлечённо...

Данные из формы передаются двумя методами GET или POST. Соответственно после вызова соответствующего скрипта обработки мы получаем глобальные переменные $_GET или $_POST. Т.е. если строка была по типу такой (для метода GET)

_http://site.ru/index.php?q=1&w=2&e=3

то мы получим $_GET['q'] = 1, $_GET['w'] = 2, $_GET['e'] = 3

А ещё лучше использовать $_REQUEST.. надёжнее

Edited by Gold Dragon
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy