Строка отсылки сообщения

Dinapoli
На сайте с 10.04.2007
Offline
163
493

Как должна выглядить строка в php, где надо указать почту, на которую отправляется сообщение ( речь идёт об "обратной связи" на сайте )?

Prior
На сайте с 03.03.2008
Offline
194
#1

$to="mail@mail.ru";
// Или так $to="Кому письмо <mail@mail.ru>";
$subject="Тема письма";
$body="Текст письма";
$str_headers = "Content-type: text; charset= windows-1251\r\n";
$str_headers.= "MIME-Version: 1.0\r\n";
$str_headers= "From:От кого письмо <from_mail@mail.ru>\r\n";
$str_headers.= "Reply-To:От кого письмо <from_mail@mail.ru>\r\n";
$str_headers.= 'X-Mailer:PHP '.phpversion();
mail($to, $subject, $body, $str_headers);
Ответы на вопрос - https://answers.net.pl
NZ
На сайте с 20.09.2009
Offline
12
#2

Dinapoli,


<?php

if (isset($_POST['send']))
{
if (!eregi("^[a-z0-9\._-]+@(.{1,}\.)*[a-z0-9]+[a-z0-9-]*[a-z0-9]+\.[a-z]{2,4}\$", $_POST['email']) || trim($_POST['message']) == "" || trim($_POST['name']) == "")
{
echo "Обязательные поля заполнены некорректно!";
}
else
{
$headers .= "Content-type: text/html; charset=windows-1251" . "\r\n";
$headers .= "From: Обратная связь сайта <mail@mydomain.com>" . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";

$message = "Имя: ".$_POST['name']."<BR>E-mail ответа: ".$_POST['email']."<BR>IP-адрес: ".$_SERVER['REMOTE_ADDR']."<BR><BR>".$_POST['message'];

@mail("адрес_почты_куда письмо_направляется", $_POST['subject'], $message, $headers);
echo "Тут текст при успешной отправке";
}
}

?>

<FORM ACTION="" METHOD="POST">
<table width="50%">
<tr>
<td><font face="Arial" size="2">Ваше имя: *</font></td><td><input type="text" style="width: 250px;" name="name"></td>
</tr>
<tr>
<td><font face="Arial" size="2">E-mail для ответа: *</font></td><td><input type="text" style="width: 250px;" name="email"></td>
</tr>
<tr>
<td><font face="Arial" size="2">Тема обращения:</font></td><td><input type="text" style="width: 250px;" name="subject"></td>
</tr>
<tr>
<td><font face="Arial" size="2">Сообщение: *</font></td><td><textarea style="width: 250px; height: 100px;" name="message"></textarea></td>
</tr>
</table><BR>
<input type="submit" name="send" value=" Отправить "><BR>
</FORM>

Dinapoli
На сайте с 10.04.2007
Offline
163
#3

А вот в таком коде?

<?php

if ($_POST['act']== "yes"){

$mailto = $_REQUEST['posEmail'];
$charset = "windows-1251";
$tel = $_REQUEST['posTel'];
$content = "text/plain";
$message = $_REQUEST['posText'];
$statusError = "";
$statusSuccess = "";

$errors_name = 'Введите ваше имя';
$errors_mailfrom = 'Введите свой E-mail адрес';
$errors_incorrect = 'Заполните правильно Ваш E-mail адрес';
$errors_message = 'Наберите текст вашего сообщения';
$errors_tel = 'Введите тему сообщения';
$send = 'Ваше сообщение успешно отправлено';


if (isset($_REQUEST['posName']) && $_REQUEST['posName'] == "")
{
$statusError = "$errors_name";
}
elseif (isset($_REQUEST['posEmail']) && $_REQUEST['posEmail'] == "")
{
$statusError = "$errors_mailfrom";
}
elseif(isset($_REQUEST['posEmail']) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$/", $_REQUEST['posEmail']))
{
$statusError = "$errors_incorrect";

unset($_REQUEST['posEmail']);
}
elseif (isset($_REQUEST['posTel']) && $_REQUEST['posTel'] == "")
{
$statusError = "$errors_tel";
}
elseif (isset($_REQUEST['posText']) && $_REQUEST['posText'] == "")
{
$statusError = "$errors_message";
}
if($statusError == ""){
$filename=$_FILES["posAtt"]["name"];
$filetype=$_FILES["posAtt"]["type"];
$filesize=$_FILES["posAtt"]["size"];
$filetemp=$_FILES["posAtt"]["tmp_name"];

$fp = fopen($strresume, "rb");
$file = fread($fp, $strresume_size);

$file = chunk_split(base64_encode($file));
$num = md5(time());

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: $content charset=$charset\r\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
$headers .= "From: \"".$_REQUEST['posName']."\" <".$_REQUEST['posEmail'].">\r\n";
$headers .= "X-Mailer: My Send E-mail\r\n";
$headers .= "Content-Type:".$filetype." ";
$headers .= "name=\"".$filename."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$filename."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";

mail("$mailto","$tel","$message","$headers");

unset($name, $posText, $mailto, $tel, $message);

$statusSuccess = "$send";
}
}

?>
NZ
На сайте с 20.09.2009
Offline
12
#4

Dinapoli, пойдет, конечно. Но слишком сильно замудрено =)

Prior
На сайте с 03.03.2008
Offline
194
#5

Если вы хотите отправить письмо кому-то другому - присвойте значение нового адреса переменной $_REQUEST['posEmail']. Т.е. после строки

if ($_POST['act']== "yes"){

вставьте

$_REQUEST['posEmail']='your_mail@mail.ru';
Dinapoli
На сайте с 10.04.2007
Offline
163
#6

Спасибо, почту вписать смог. Но тут другая проблемы вырисовалась.

Приходит письмо только с названием и отправителес (в данном случае это телефон и имя ) а само письмо пустое.

NZ
На сайте с 20.09.2009
Offline
12
#7

Dinapoli, html-код формы в студию.

Dinapoli
На сайте с 10.04.2007
Offline
163
#8

Вот форма:

 <form action="<?=$_SERVER['SCRIPT_NAME'];?>" method="post" id="cForm">

<input type="hidden" name="act" value="yes" />

<label for="posName"><span class="textb"><b>Ваше имя:</b></span></label><br>
<input class="field1" type="text" name="posName" id="posName" /><br><br />

<label for="posEmail"><span class="textb"><b>Ваш E-mail адрес:</b></span></label><br>
<input class="field1" type="text" name="posEmail" id="posEmail" /><br><br />

<label for="posTel"><span class="textb"><b>Телефон:</b></span></label><br>
<input class="field1" type="text" name="posTel" id="posTel" /><br><br />

<label for="posText"><span class="textb"><b>Описание заказа:</b></span></label><br>
<textarea class="field1" name="posText" id="posText" style="height:150px"></textarea>
<br>
<br />

<label for="posAtt"><span class="textb"><b>Прикрепить файл:</b></span></label><br>
<input type="file" name="posAtt" id="posAtt"><br><br />

<label>
<input class="submit" type="submit" name="selfCC" id="selfCC" value=" Отправить " />
</label>

</form>
NZ
На сайте с 20.09.2009
Offline
12
#9

Так попробуйте.


<?php

if ($_POST['act'] == "yes") {

$mailto = $_POST['posEmail'];
$charset = "windows-1251";
$tel = $_POST['posTel'];
$content = "text/plain";
$message = $_POST['posText'];
$statusError = "";
$statusSuccess = "";

$errors_name = 'Введите ваше имя';
$errors_mailfrom = 'Введите свой E-mail адрес';
$errors_incorrect = 'Заполните правильно Ваш E-mail адрес';
$errors_message = 'Наберите текст вашего сообщения';
$errors_tel = 'Введите тему сообщения';
$send = 'Ваше сообщение успешно отправлено';


if (isset($_POST['posName']) && $_POST['posName'] == "")
{
$statusError = $errors_name;
}
elseif (isset($_POST['posEmail']) && $_POST['posEmail'] == "")
{
$statusError = $errors_mailfrom;
}
elseif(isset($_POST['posEmail']) && !eregi("^[a-z0-9\._-]+@(.{1,}\.)*[a-z0-9]+[a-z0-9-]*[a-z0-9]+\.[a-z]{2,4}\$", $_POST['posEmail'])
{
$statusError = $errors_incorrect;

unset($_POST['posEmail']);
}
elseif (isset($_POST['posTel']) && $_POST['posTel'] == "")
{
$statusError = $errors_tel;
}
elseif (isset($_POST['posText']) && $_POST['posText'] == "")
{
$statusError = $errors_message;
}

if($statusError == ""){
$filename = $_FILES["posAtt"]["name"];
$filetype = $_FILES["posAtt"]["type"];
$filesize = $_FILES["posAtt"]["size"];
$filetemp = $_FILES["posAtt"]["tmp_name"];

$fp = fopen($strresume, "rb");
$file = fread($fp, $strresume_size);

$file = chunk_split(base64_encode($file));
$num = md5(time());

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: $content charset=$charset\r\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
$headers .= "From: \"".$_POST['posName']."\" <".$_POST['posEmail'].">\r\n";
$headers .= "X-Mailer: My Send E-mail\r\n";
$headers .= "Content-Type:".$filetype." ";
$headers .= "name=\"".$filename."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$filename."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";

@mail($mailto, $tel, $message, $headers);

unset($name, $posText, $mailto, $tel, $message);

$statusSuccess = $send;
}
}

?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий