|
|
|
| Имеется форма:
<form name="form" method="post" action="send.php">
<input type="text" name="text" />
<input type="text" name="mail" />
<input type="checkbox" name="checkbox" />
<input type="submit" name="submit" value="Send" />
</form>
|
Нужно, чтобы при обработке формы (send.php) отправлялось письмо на e-mail, а в теле письма отображалась информация из инпутов "text" и "mail". В инете много примеров, но не один у меня не заработал :( Кто-нибудь сможет помочь? :) | |
|
|
|
|
|
|
|
для: Electron
(09.11.2011 в 15:37)
| | А что вызывает сложность? Просто подставляйте значения $_POST['name'] и $_POST['mail'] в соответствующие параметры функции mail(). | |
|
|
|
|
|
|
|
для: cheops
(09.11.2011 в 16:39)
| | Спасибо :D
Получилось так:
<?
$to = 'info@mail.ru';
$subject = 'Title';
$message = $_POST['text'];
mail($to, $subject, $message);
?>
|
А как задать имя, от кого приходит письмо? На данный момент у меня получается так:
www-data <www-data@mail.domain.com> | |
|
|
|
|
|
|
|
для: Electron
(09.11.2011 в 18:53)
| | Нужно добавить четвертый параметр в функцию mail(), в которой задать почтовый заголовок вида
From: somebody@somewhere.ru
|
| |
|
|
|
|
|
|
|
для: cheops
(09.11.2011 в 19:04)
| | Я так пробовал, такой заголовок идёт в тело письма, а не в заголовок... | |
|
|
|
|
|
|
|
для: Electron
(09.11.2011 в 19:13)
| | Понятно, тогда нужно добавить два перевода строки
<?php
$header = "From: somebody@somewhere.ru\r\n\r\n";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.11.2011 в 19:19)
| | Ничего не изменилось, я правильно делаю?
<?
$to = 'info@mail.ru';
$subject = 'Title';
$message = 'Text: '.$_POST['text'];
$from = 'from@mail.ru';
$header = 'From: from@mail.ru\r\n\r\n';
mail($to, $subject, $message, $from, $header);
?>
|
| |
|
|
|
|
|
|
|
для: Electron
(10.11.2011 в 10:58)
| | А, стоп, работает отлично, так:
<?
$to = 'info@mail.ru';
$subject = 'Title';
$message = 'Text: '.$_POST['text'];
$header = 'From: from@mail.ru"\r\n\r\n';
mail($to, $subject, $message, $header);
?>
|
Ещё перед переводами строк поставил кавычку, а то письмо приходит вида: from@mail.ru#092
Спасибо! :)
Сейчас буду пытаться вставить в письмо HTML-код, если не получится, спрошу тут, ок? :p
UPD:
А ещё лучше так:
$header = 'From: Name <from@mail.ru>"\r\n\r\n';
|
| |
|
|
|
|
|
|
|
для: cheops
(09.11.2011 в 19:04)
| | Мне ещё нужно, чтобы была скрытая копия, тело письма форматировалось в HTML и прикреплялся вордовский файл, это должно выглядеть примерно так:
<?
$to = 'info@mail.ru';
$subject = 'Title';
$filepatch = '/patch/file.doc';
$file = fopen($filepatch,'rb');
$message = 'Text: <b>'.$_POST['text'].'</b>';
$headers = 'Content-Type:text/html; charset=utf-8"\r\n';
$headers .= 'From: from@mail.ru"\r\n\r\n';
$headers .= 'Bcc: secret@mail.ru"\r\n';
$body = 'name='.basename($filepatch).'\n';
$body .= 'Content-Transfer-Encoding:base64n';
$body .= 'Content-Disposition:attachmentnn';
$body .= base64_encode(fread($file,filesize($filepatch))).'n';
mail($to, $subject, $message, $headers, $body);
?>
|
Что сделать, чтобы это всё заработало? :) | |
|
|
|
|
|
|
|
для: Electron
(10.11.2011 в 12:12)
| | Тут вот какая штука, дело в том что два перевода строки \r\n\r\n служат признаком окончания почтовых заголовков и начала тела документа. Поэтому строка с \r\n\r\n у вас должна быть всегда последней. | |
|
|
|
|
|
|
|
для: cheops
(10.11.2011 в 12:36)
| | Ну я это примерно понял, но всё же не получается сделать правильный порядок...
К примеру, так нормально отображается от кого, но копия и кодировка не работают:
$headers = 'From: Name <info@mail.com>"\r\n';
$headers .= 'Content-Type:text/html; charset=utf-8'"\r\n';
$headers .= 'Bcc: secret@mail.com"\r\n';
|
А так работает кодировка, но не работают от кого и копия:
$headers = 'Content-Type:text/html; charset=utf-8'"\r\n';
$headers .= 'Bcc: secret@mail.com"\r\n';
$headers .= 'From: Name <info@mail.com>"\r\n\r\n';
|
Как же всё-таки правильно расположить переходы строк? чтобы работало всё? Заранее спасибо :) | |
|
|
|
|
|
|
|
для: Electron
(10.11.2011 в 15:41)
| | А если все-таки убрать кавычки и поступить так
$headers = 'Content-Type:text/html; charset=utf-8"\r\n';
$headers .= 'Bcc: secret@mail.com\r\n';
$headers .= 'From: Name <info@mail.com>\r\n\r\n';
| ситуация не меняется? | |
|
|
|
|
|
|
|
для: cheops
(10.11.2011 в 15:46)
| | В такой ситуации работает кодировка, без копии, без отправителя...
А вот при таком порядке работает копия, но не работают от кого и кодировка:
$headers = 'Bcc: secret@mail.com"\r\n';
$headers .= 'Content-Type:text/html; charset=utf-8'"\r\n';
$headers .= 'From: Name <info@mail.com>"\r\n';
|
| |
|
|
|
|
|
|
|
для: cheops
(10.11.2011 в 15:46)
| | В общем работает только тот заголовок, который стоит первым, а остальные нет... Может дело в разделителе между заголовками ($headers)? Помогите, плз :) | |
|
|
|
|
|
|
|
для: Electron
(09.11.2011 в 15:37)
| | Может быть не функцией mail лучше воспользоваться, а smtp. | |
|
|
|
|
|
|
|
для: Electron
(09.11.2011 в 15:37)
| | Сообщения приходят всегда и в спам не попадут точно. Да вроде и реализовать не так сложно. Почитайте, например здесь:Скрипт отправки сообщений с сайта | |
|
|
|