|
|
|
| Приветствую.
Вот смотрите, сделал дома хостинг для своего сайта, настрил Apache+MySQL+PHP, установил почтовый сервер (CourierMailServer). Зарегил домен, ip все связал, порты почтовые тоже, всё работает. В почтовом сервере есть пользователь admin@site.ru, почтовый сервер отпровляет и получает письма из Интернета и обратно, всё нормально. На сайте есть форма которая отправляет этому пользователю admin@site.ru почтовые сообщения, скрипт такой.
$text = $atext
$address = 'admin@site.ru';
$subject = "Письмо с сайта";
$message = "Сообщение - ".$text."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=Windows-1251\r\n")
|
Проблем нет всё работает, письма приходят.
И вот столкнулся с проблемой, нужно, что бы письма пересылались от admin@site.ru пользователю который в форме указывает свой email. Т.е код типа такой
// проверка ввода email
if (isset($_POST['email'])) {
.......
}
//Далее если всё с email нормально то нужно отправить письмо по указанному адресу. И тут у меня загвоздка т.е. вот такая
$text = $atext
$address = $email;
$subject = "Письмо с сайта";
$message = "Сообщение - ".$text."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=Windows-1251\r\n");
|
Вот как сделать, чтоб письмо отправлялось от admin@site.ru человеку адрес которого $email
Где настраивать в почтовом сервере или код должен быть другой, или в apache?
Понимаю, что разгадка рядом но что то не докумекать, подскажите направление. | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 10:01)
| | Используйте следующий код:
$text = $atext
$address = $email;
$subject = "Письмо с сайта";
$message = "Сообщение - ".$text."";
$headers = "Content-type:text/plain; Charset=Windows-1251\r\nFrom:admin@".$_SERVER['SERVER_NAME'];
mail($address,$subject,$message,$headers);
|
| |
|
|
|
|
|
|
|
для: Commander
(11.04.2009 в 10:10)
| | Что то не отправляется. Я наверно плохо изложил проблемму, в вашем коде просто добавляется имя от кого письмо, правильно? А мне то нужно, что бы скрипт, какбы это объснить ))) ну типа дал задание почтовому серверу отправить от admin@site.ru письмо на адрес, $email с текстом $text. Что то мне подсказывает, что наверно нужно как то почтовый сервер настраивать, или всётаки нет. | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 10:01)
| | Что значит "письмо отправлялось от admin@site.ru"? Был указан этот адрес отправителя?
Существуем масса заголовков, кторые отправляются в почтовом отправлении, из них, нужные вам, это From и Reply-To. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 10:10)
| | >Что значит "письмо отправлялось от admin@site.ru"? Был указан этот адрес отправителя?
>Существуем масса заголовков, кторые отправляются в почтовом отправлении, из них, нужные вам, это From и Reply-To.
да мне главное, что бы пользователь получил письмо с текстом а от кого оно это вопрос второй, щас попробую код от Commander | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 10:32)
| | Код Commander ни чем не отличается от вашего. Если вообще письма не отправляются, значит не работает сервер почтовый.
PS. Таким образом отправлять тему письма на русском языке, как делаете вы и Commander, нельзя. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 11:02)
| | Ну да, почтовый сервер как бы не пересылает письма через admin@site.ru. по указанному $email
Получается, почтовый сервер работает, но только может пролучить письмо которе будет адресованно admin@site.ru т.е. пользователю который забит в настройках почтового сервера этот код работает, и письма с сайта нормально складываются в папку входящие.
$address = 'admin@site.ru';
$subject = "Письмо с сайта";
$message = "Сообщение - ".$text."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=Windows-1251\r\n")
|
И потом я могу с любого компьютера получить это письмо. | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 11:08)
| | Смотрите настройки своего почтового сервера, и повторяю: $subject = "Письмо с сайта"; - так не пойдет. Нужно кодировать, иначе респондент будет получать абракадабру. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 11:17)
| | Да вроде понял, на почтовом сервере нужно настраивать пересылку.
>Смотрите настройки своего почтового сервера, и повторяю: $subject = "Письмо с сайта"; - так не пойдет. Нужно кодировать, иначе респондент будет получать абракадабру.
Подскажите пожалуйста как кодировать. | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 11:19)
| | Например, так:
$sender = "=?windows-1251?B?" . base64_encode($name) . "?= <" .$reply. ">" - это для дреса и имени отправителя.
$subject = "=?windows-1251?B?" . base64_encode($subject) . "?="; - это для темы письма. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 11:24)
| | Спасибо, буду пробовать.
И ещё раз спрошу по поводу почтового сервера, точно проблемма в пересылке? Там ведь не один пользователь admin@site.ru, какой долджен быть тогда код, что бы почтовый сервер обрабатывал запрос и отправлял письма, именно от admin@site.ru. Ведь получается в настройках apache если стоит
ServerAdmin admin@site.ru
То и письма должны приходить к нему и от него.
Блин кто бы подкинул мозгов )))))
Так, стоп ну а если я с таким вот кодом перееду на какой нибудь хостинг, и там захочу сделать к примеру систему восстановления пароля. Т.е пользователь будет вводить свой адрес и должен будет получить письмо с сайта. Как тогда получается это работает. Ведь таких систем полно и регистрации и восстановление паролей. | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 11:34)
| | Каким кодом? Хост вам предоставит работу с почтой. Не ваша забота, сколько, от кого и как. К вам будет только ограничения на количество отправляемой почты и ее объема за единицу времени. Если вы о своем тестовом сервере, то разбирайтесь не с Апач, а с почтовым сервером и настройками в РНР. А еще лучше установите для теста Денвер, который будет просто складывать почтовые отправления во временную папку, никуда их не отправляя - от это пользы больше, так как ошибок при отправке ее вы допускаете не меряно. А уж если уверены, что сформировали почтовое отправление верно, то проверить его на другом сервисе не столь сложно - отпрввите его в Outlook, вот и все. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 11:48)
| | Блин да в том то и дело, у меня один комп типа сервер на котором всё работает, почта сайт и т.д. А на другом Денвер, на нём я всё и тестирую прежде чем выложить на этот сервер и почтовая заглушка работает тоже. На сервере сейчас если пользователь хочет мне написать сообщение, то в форму забивает текст и нажимает отправить, я получаю письмо.
по этому коду
$address = 'admin@site.ru';
$subject = "Письмо с сайта";
$message = "Сообщение - ".$text."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=Windows-1251\r\n")
|
А теперь возник вопрос, что нужно пользователю получить из базы определённый текст. и он должен ввести свой адрес электронной почты, и нажать на кнопочку получить. А скрипт должен этот текст ему отправить. Вот сейчас у меня всё получается кроме отправки, уже психоз начинается )))) | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 12:02)
| | Денвер ничего и никуда и не отпарвляет. А чтобы отправить почту получателю, то указывается его адрес, все. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 12:05)
| | >Денвер ничего и никуда и не отпарвляет. А чтобы отправить почту получателю, то указывается его адрес, все.
Денвер то понятно, что ничего не отправляет. И мой почтовый сервер, гад, тоже, не хочет отправлять ничего никому. Хотя и работает как почтовый сервер, если вы напишете мне письмо то я его получу и если напишу вам то тоже вы его получите. А вот если вы в форме напишете свой адрес $email то ничего не получите ))))
не работает вот так вот.
$address = $email; // НО ЕСЛИ $email ЗАМЕНИТЬ НА admin@site.ru то почтовый сервер положит ссобщение в папку входящие. Т,Е пользователь admin@site.ru в почтовом сервере есть и он его обробатывает.
$subject = "Письмо с сайта";
$message = "Сообщение - ".$text."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=Windows-1251\r\n");
|
| |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 12:14)
| | Разбивайте то, что выставляете на страницу, иначе никто читать не будет.
Что вы этот код пстоянно выставляете, он уже надоел, проблема не в нем - смотрите настройки своего сервера. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 12:16)
| | Ладно, т.е. получается, что пусть аброкадабру пусть не очень правильно но этот мой код при правильной настройке сервера, должен отправить письмо ? | |
|
|
|
|
|
|
|
для: PSB
(11.04.2009 в 12:25)
| | Да. Только вот абракадабру, почтовые сервисы могут и не принять, посчитав ее за спам или вообще за вирус. | |
|
|
|
|
|
|
|
для: sim5
(11.04.2009 в 12:29)
| | Спасибо sim5, Спасибо за то, что не написал "Ну какой вы тупой! -Та же самая мебель и ключ подошёл!!!" )))) | |
|
|
|