[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Настройка mail() для самых маленьких )
Alexeyyy
Здравствуйте! На вашем форуме получил пару очень полезных советов, вот опять решил вопросить ) Изучаю php, застрял на mail() и дальше никак. После заполнения формы юзер получает окошко с введенными им данными, а письмо теоретически должно уйти на мой ящик на Рамблере. Как я понял, функция по отправке у меня не настроена, а как в этом случае быть источник умалчивает ) почитал статьи в Инете, кто что советует. Одни говорят, SMTP устанавливать, другие - SMTP не нужен, нужен только sendmail. Запутался окончательно, что-то наустанавливал, mail() по-прежнему молчлит. В теме "почтовый класс" про настройку не нашел ( Может, кто-нибудь поможет, буду благодарен!



Спустя 2 минуты, 24 секунды (12.03.2011 - 23:57) neadekvat написал(а):
Открывается окошко с сообщением? То есть вы работаете на своем локальном компьютере, у вас установлен Денвер, вы отправляете письмо - и вам открывается окошко. Так, или ситуация иная?

Спустя 19 минут, 12 секунд (13.03.2011 - 00:16) Alexeyyy написал(а):
Да, работаю на своем компьютере, php устанавливал вручную, Денвер не ставил. Через локалхост запускаю html файл с формой-анкетой, заполняю ее, нажимаю кнопку "отправить". Наверное, я неверно выразился, окошка нового нет, просто на той же вкладке высвечивается информация типа "Спасибо за заполнение формы! Вас зовут... ваш e-mail..." и другие введенные данные. А в самом верху это "
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\report.php on line 30" То есть я что-то нахимичил, а как спасаться на знаю huh.gif

Спустя 6 минут, 30 секунд (13.03.2011 - 00:22) neadekvat написал(а):
Ничего себе "Не так выразился", да вы же совершенно исказили реальное положение дел.

Я вам предлагаю не парить себе голову с настройкой smtp сервера. Скачайте себе заглушку на 25-й порт для отработки отсылки писем. На хостинге же вам уже будет почта настроена.

Спустя 13 часов, 19 минут, 3 секунды (13.03.2011 - 13:41) Alexeyyy написал(а):
Исказил. Каюсь smile.gif То есть мне удалить свой smtp, установить заглушку и mail() должен заработать? А до хостинга мне еще работать и работать, пока все это в домашних условиях. rolleyes.gif

Спустя 4 минуты, 14 секунд (13.03.2011 - 13:46) neadekvat написал(а):
Можете ничего не удалять - просто скачайте и запустите заглушку. Правда, посмотрите настройки - надо указать, куда будут сохраняться отправленные письма.

Спустя 23 часа, 17 минут, 55 секунд (14.03.2011 - 13:04) Alexeyyy написал(а):
Скачал Test Mail Server Tool, при установке не было окна для выбора порта 25 и папки для сохранения писем (как на картинке сверху), установил, а воз и ныне там "Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\report.php on line 30" Может, мне на до что-то прописать в php.ini?

Спустя 2 минуты, 56 секунд (14.03.2011 - 13:07) T1grOK написал(а):
C установкой заглушек порой такие косяки бывают. В denwer-е уже встроеная загрулка, установил и шли письма сколько угодно.

Спустя 1 час, 45 минут, 58 секунд (14.03.2011 - 14:52) neadekvat написал(а):
Вот, например, часть моего php.ini (раздел [mail function]):
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

Спустя 30 минут, 15 секунд (14.03.2011 - 15:23) Alexeyyy написал(а):
Спасибо, neadekvat, сейчас попробую! T1grOK, столько сил душевных было отдано установке php, что не рука не поднимается снести это и поставить Денвер smile.gif Хотя, может, и на это придется пойти...

Спустя 22 минуты, 32 секунды (14.03.2011 - 15:45) neadekvat написал(а):
Цитата (Alexeyyy @ 14.03.2011 - 12:23)
Хотя, может, и на это придется пойти...

Не надо. Взялись - доведите до конца.
Если, конечно, не завтра прект сдавать.

Спустя 6 часов, 5 минут, 11 секунд (14.03.2011 - 21:50) Alexeyyy написал(а):
Хммм, хмммм, мой раздел в php.ini [mail function] точно такой же как у вас, для верности еще раз перепроверил - один в один, а mail() молчит. Можно как-нибудь проверить 25 порт? Я слышал, что такое через telnet можно сделать, но как сие совершить не знаю.

Спустя 3 минуты, 15 секунд (14.03.2011 - 21:54) twin написал(а):
А сама то заглушка стоит?

Спустя 10 минут, 56 секунд (14.03.2011 - 22:05) Alexeyyy написал(а):
Сделал все как посоветовал neadekvat, прошел по ссылке (4 сообщение сверху), скачал и запустил Test Mail Server Tool. Это ведь и есть заглушка?

Спустя 22 минуты, 24 секунды (14.03.2011 - 22:27) neadekvat написал(а):
По идее, да.
А какие настройки у Test Mail Server Tool?

Спустя 2 часа, 11 минут, 26 секунд (15.03.2011 - 00:38) Alexeyyy написал(а):
Настройки такие: выбран 25 порт, open recived e-mails активно и выбран путь для сохранения писем в мою папку на диске D.

Спустя 6 часов, 42 минуты, 40 секунд (15.03.2011 - 07:21) neadekvat написал(а):
Хм.. вернемся к процессу отправки почты.
Как вы это делаете (покажите код)?
И, да, быть может, вы помните, делали ли какие-нибудь (и какие конкретно) изменения в настройках php до того, как создали топик?

Спустя 8 часов, 52 секунды (15.03.2011 - 15:22) Alexeyyy написал(а):
Чур над темой анкеты не смеяться, так новаторски учат новичков книги издательства O'Reilly wink.gif Вот html код анкеты:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Aliens Abducted Me - Report an Abduction</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h2>Aliens Abducted Me - Report an Abduction</h2>

<p>Share your story of alien abduction:</p>
<form method="post" action="report.php">
<label for="firstname">First name:</label>
<input type="text" id="firstname" name="firstname" /><br />
<label for="lastname">Last name:</label>
<input type="text" id="lastname" name="lastname" /><br />
<label for="email">What is your email address?</label>
<input type="text" id="email" name="email" /><br />
<label for="whenithappened">When did it happen?</label>
<input type="text" id="whenithappened" name="whenithappened" /><br />
<label for="howlong">How long were you gone?</label>
<input type="text" id="howlong" name="howlong" /><br />
<label for="howmany">How many did you see?</label>
<input type="text" id="howmany" name="howmany" /><br />
<label for="aliendescription">Describe them:</label>
<input type="text" id="aliendescription" name="aliendescription" size="32" /><br />
<label for="whattheydid">What did they do to you?</label>
<input type="text" id="whattheydid" name="whattheydid" size="32" /><br />
<label for="fangspotted">Have you seen my dog Fang?</label>
Yes <input id="fangspotted" name="fangspotted" type="radio" value="yes" />
No <input id="fangspotted" name="fangspotted" type="radio" value="no" /><br />
<img src="fang.jpg" width="100" height="175"
alt="My abducted dog Fang." /><br />
<label for="other">Anything else you want to add?</label>
<textarea id="other" name="other"></textarea><br />
<input type="submit" value="Report Abduction" name="submit" />
</form>
</body>
</html>


Вот php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Aliens Abducted Me - Report an Abduction</title>
</head>
<body>
<h2>Aliens Abducted Me - Report an Abduction</h2>

<?php
$name = $_POST['firstname'] . ' ' . $_POST['lastname'];
$when_it_happened = $_POST['whenithappened'];
$how_long = $_POST['howlong'];
$how_many = $_POST['howmany'];
$alien_description = $_POST['aliendescription'];
$what_they_did = $_POST['whattheydid'];
$fang_spotted = $_POST['fangspotted'];
$email = $_POST['email'];
$other = $_POST['other'];

$to = 'owen@aliensabductedme.com';
$subject = 'Aliens Abducted Me - Abduction Report';
$msg = "$name was abducted $when_it_happened and was gone for $how_long.\n" .
"Number of aliens: $how_many\n" .
"Alien description: $alien_description\n" .
"What they did: $what_they_did\n" .
"Fang spotted: $fang_spotted\n" .
"Other comments: $other";
mail($to, $subject, $msg, 'From:' . $email);

echo 'Thanks for submitting the form.<br />';
echo 'You were abducted ' . $when_it_happened;
echo ' and were gone for ' . $how_long . '<br />';
echo 'Number of aliens: ' . $how_many . '<br />';
echo 'Describe them: ' . $alien_description . '<br />';
echo 'The aliens did this: ' . $what_they_did . '<br />';
echo 'Was Fang there? ' . $fang_spotted . '<br />';
echo 'Other comments: ' . $other . '<br />';
echo 'Your email address is ' . $email;
?>

</body>
</html>

Вот как-то так.

Спустя 4 минуты, 5 секунд (15.03.2011 - 15:26) Alexeyyy написал(а):
Изменения я делал, когда возился с sendmail, но исходную нетронутую копию php.ini сохранил и сейчас установил ее вместо измененной. Так что по идее ничего там такого не должно быть.

Спустя 13 минут, 39 секунд (15.03.2011 - 15:40) Alexeyyy написал(а):
Да, и еще, в тексте программы адрес получателя взят из книги, я заменил его на свой адрес на Рамблере.

Спустя 2 часа, 29 минут, 47 секунд (15.03.2011 - 18:10) neadekvat написал(а):
Сделайте
$mail = mail(...);
if ($mail) echo 'ok'; else echo 'no';

Надо узнать, отправляется ли письмо.
И, я надеюсь, вывод всех ошибок включен?

Спустя 20 часов, 56 минут, 14 секунд (16.03.2011 - 15:06) Alexeyyy написал(а):
Сделал как вы сказали, итог - "no". Включил вывод всех ошибок, Вот что пишет:

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\report.php:11) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\report.php on line 12
(Насколько я понимаю, это не относится к почте)

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\report.php on line 32

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\report.php on line 33

То есть опять ему мой mail() категорически не нравится. А есть ли в php.ini еще какие-нибудь блоки, связанные с почтой кроме [mail function]?

Спустя 1 день, 7 часов, 51 минута, 39 секунд (17.03.2011 - 22:57) Alexeyyy написал(а):
Neadekvat, неужели вы решили, что я совсем безнадежен? sad.gif

Спустя 12 минут, 42 секунды (17.03.2011 - 23:10) neadekvat написал(а):
Цитата (Alexeyyy @ 17.03.2011 - 22:57)
неужели вы решили, что я совсем безнадежен?

Нет, вчера в потоке новых сообщений не увидел smile.gif

У меня два варианта:
1. Вы таки не запускаете заглушку (у меня такая же ошибка возникает, если заглушка не запущена. Включаю ее - ошибка исчезает, письма сохраняются).
2. Заглушка запущена, но порт, выставленный в php.ini и в заглушке не совпадают.

Спустя 15 минут, 21 секунда (17.03.2011 - 23:25) Alexeyyy написал(а):
Итак, смотрю в настройках php.ini и в опциях TestMailServerTool номер порта, если совпадает - хорошо. Заглушку надо запускать вручную? Я думал, она как Апач, сама автоматически включается при включении компьютера.

Спустя 5 минут, 50 секунд (17.03.2011 - 23:31) neadekvat написал(а):
Цитата (Alexeyyy @ 17.03.2011 - 23:25)
Заглушку надо запускать вручную?

Конечно.
Можно добавить в автозагрузку, но не вижу смысла в этом.

Да и апаче я бы посоветовал убрать с автозапуска - зачем вам лишний процесс в оперативной памяти?

Спустя 8 минут, 21 секунда (17.03.2011 - 23:40) Alexeyyy написал(а):
Включаю ее двойным щелчком, когда значок появился в трее, заглушка активна, так? Или по-другому колдовать надо? Если стану убирать Апач с автозапуска, переломаю все окончательно wink.gif

Спустя 3 минуты, 50 секунд (17.03.2011 - 23:43) neadekvat написал(а):
Цитата (Alexeyyy @ 17.03.2011 - 23:40)
Включаю ее двойным щелчком, когда значок появился в трее, заглушка активна, так?

Да, вот так верно.

Цитата (Alexeyyy @ 17.03.2011 - 23:40)
Если стану убирать Апач с автозапуска, переломаю все окончательно

Что ж, если не мешает - пусть будет.
С опытом все равно пересмотрите свои взгляды на многие вещи.

Спустя 3 минуты, 12 секунд (17.03.2011 - 23:47) Alexeyyy написал(а):
Я уже многое пересмотрел. Например, если возникли вопросы, лучше прийти на ваш форум и пообщаться с профессионалами, чем сидеть и плакать о загубленной php карьере, чем я собственно и занимался целый месяц biggrin.gif

Спустя 7 минут, 20 секунд (17.03.2011 - 23:54) Alexeyyy написал(а):
OMG!!!!!!! ОН ЖИВ!!!!! ОН ЖИВ!!!!!! Он написал "ок" и начал настраивать Outlook!!!!! Значит, дело совсем за малым, надо одолеть это препятствие и я у цели!!!!!!!

Спустя 11 минут, 25 секунд (18.03.2011 - 00:05) neadekvat написал(а):
Цитата (Alexeyyy @ 17.03.2011 - 23:47)
чем сидеть и плакать о загубленной php карьере, чем я собственно и занимался целый месяц

Приходите на форум или плачите? smile.gif

Цитата (Alexeyyy @ 17.03.2011 - 23:54)
Он написал "ок" и начал настраивать Outlook!!!!! Значит, дело совсем за малым, надо одолеть это препятствие и я у цели!!!!!!!

Да, действительно. Письма вы уже отправляете. Осталось настроить пользовательское приложение для чтения этих писем.

Однако это не все. Теперь вам надо разобраться с заголовками письма. Описаны они в RFC 822, но и в Гугле достаточно примеров.
Без корректных заголовков почтовые сервисы с большой долей вероятности примут ваше письмо за спам. Кроме того, ведь надо же как-то указать тип текста и его кодировку.

Спустя 7 минут, 47 секунд (18.03.2011 - 00:13) Alexeyyy написал(а):
Нет, на форуме все сурово, плакать нельзя, тут только по делу biggrin.gif Простите, а что такое RFC 822? Это какой-то справочник?

Спустя 6 минут, 9 секунд (18.03.2011 - 00:19) neadekvat написал(а):
Цитата (Alexeyyy @ 18.03.2011 - 00:13)
Простите, а что такое RFC 822? Это какой-то справочник?

Я бы даже сказал кладезь.
RFC по сути - это спецификации интернета (и всего, что близко), именно по ним в принципе возможна работа сетей, интернета и нашего с вами общения.
Каждый rfc имеет свой номер и какую-то тему. RFC 822, например, это спецификации электронных сообщений. Не будь этого документа - вряд ли была бы возможность посылать письма даже на другой почтовый сервис.
Подробнее.

Спустя 9 часов, 16 минут, 40 секунд (18.03.2011 - 09:36) Alexeyyy написал(а):
Здорово! Спасибо большое! Сегодня постараюсь настроить почту, о результатах сообщу. Ну и намучались вы со мной biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.