Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: php mail(), windows, без sendmail.exe
Форумы портала PHP.SU » » Вопросы новичков » php mail(), windows, без sendmail.exe

Страниц (1): [1]
 

1. Contr - 17 Июня, 2016 - 10:53:47 - перейти к сообщению
Несколько дней разбираюсь с отправкой писем с помощью mail(). Ничего не получается пока Хм .

Что я понял: Улыбка
1) php не умеет отправлять письма самостоятельно
2) для отправки писем php смотрит в свой .ini файл, ищет строку sendmail_path и запускает указанную программу, передавая ей свои параметры.
3) указанную программу необходимо настроить на бесплатный smtp-сервер, например, smtp.yandex.ru 465, для чего в том же php.ini указываем этот адрес и порт
4) По факту почту передавать далее будет уже сторонний ресурс (smtp.yandex.ru)


Нашел php-скриптик, который ничего особенного в принципе не делает, просто создает файлик-письма в папке рядом с собой. Назвал php-скрипт sendmail.php и прописал в sendmail_path как "c:/php.exe -f c:/php/sendmail.php"

Что у меня получилось:
1) настроить php.ini
2) установить telnet. Я попробовал достучаться с него до smtp.yandex.ru 465 - ответа не было.


Вопросы:
1) Можно ли обойтись без sendmail.exe ? Воспользоваться, скажем, программой telnet, уже имеющейся в windows? Для меня это принципиально, что нашел - так это ссылки на сомнительные ресурсы, на которых рекомендуют скачать их софт)). В гугле инфы мало, что наводит на мысль, либо a) я что-то не понимаю и ищу то, чего нет, либо б) вопрос пустяковый, и все с ним разобрались. На ютюбе полно видео, в котором разбирают не вопрос настроек, а вопрос разметки странички с формой обратной связи (Не понял нашли на чем акцентировать внимание) , что подтверждает пункт б)
2) Нужен ли логин-пароль для подключения к smtp яндекса?

Знаю, что на движке форуме есть отправка писем, как это организовано у нас?
Прошу поделить опытом, отправка писем, наверное, вопрос тривиальный, но сложный для меня. Спасибо за ответы.
2. Viper - 17 Июня, 2016 - 14:07:18 - перейти к сообщению
1. http://php.net/manual/ru/mail.requirements.php
2. да
3, 4. да

Contr пишет:
установить telnet. Я попробовал достучаться с него до smtp.yandex.ru 465 - ответа не было.
и не будет ибо SSL/TLS. В открытом виде там ничего нет.
Вопросы:
1. Можно
Contr пишет:
Воспользоваться, скажем, программой telnet, уже имеющейся в windows?
и да и нет.
Contr пишет:
я что-то не понимаю
да.
Contr пишет:
На ютюбе полно видео, в котором разбирают не вопрос настроек
по видео на ютубе учаться умственно отсталая школота(уж простите за грубость). Учитесь искать документацию на оф. сайтах и там же смотреть комментарии. + github.
Contr пишет:
Нужен ли логин-пароль для подключения
всегда. К тому же яндекс может блокировать отправку писем через ихний smtp с неизвестных хостов. Т.к. это может привести(приводит) к спаму.

https://github[dot]com/PHPMailer/PHPMailer/ решит ваши проблемы.
3. Contr - 17 Июня, 2016 - 15:41:15 - перейти к сообщению
Разбираюсь, хоть и написано там явно много лишнего.


Viper, скажите, пожалуйста, при использовании этого проекта надо использовать sendmail.exe или нет?
4. Viper - 17 Июня, 2016 - 18:33:30 - перейти к сообщению
Contr пишет:
при использовании этого проекта надо использовать sendmail.exe или нет
там же написано Улыбка
Цитата:
The PHP mail() function usually sends via a local mail server, typically fronted by a sendmail binary on Linux, BSD and OS X platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.

А вообще я не вижу проблем с использованием sendmail. Не нравиться senmail пользуйте что-то другое.
5. Contr - 17 Июня, 2016 - 18:40:44 - перейти к сообщению
The PHP mail() function usually sends via a local mail server, typically fronted by a sendmail binary on Linux, BSD and OS X platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.

Получается, без него можно обойтись.
Я постараюсь поискать, каким образом реализована эта "SMTP implementation" Растерялся . Может, вы знаете? Закатив глазки
6. Мелкий - 17 Июня, 2016 - 20:14:41 - перейти к сообщению
Contr пишет:
каким образом реализована эта "SMTP implementation"

Не поверите: файл так и называется https://github[dot]com/PHPMailer/PHP[dot][dot][dot]r/class[dot]smtp.php
7. Contr - 17 Июня, 2016 - 22:17:01 - перейти к сообщению
Пока разбираюсь.
Мне только один вопрос пока не дает покоя: если отпраку почты можно реализовать при помощи набора файлов из проекта на гитхабе, то почему в php нет стандартной (встроенной) библиотеки / класса, в котором все бы это уже было бы реализовано?
Ведь есть же всякие функции, к примеру, in_array(), без которых можно обойтись, которые просто сокращают код? Не понял

Тем более отправка почты как явление появилось еще "со времен динозавров".
8. Viper - 18 Июня, 2016 - 00:10:40 - перейти к сообщению
Contr пишет:
почему в php нет стандартной (встроенной) библиотеки / класса, в котором все бы это уже было бы реализовано?
наверное исторически так сложилось, что sendmail под линухами был давно и с этим проблем не было. Появилась винда с её сборками серверов и тут началось... Долго под винду sendmail'а не было, но потом запилили. Отсюда возможно и появилось что имеем.
В PHP много чего нет в стандартной поставке(поиск модулей и подключение это ещё тот геморой). К тому же работа с почтой это довольно не тривиальная задача.

 

Powered by ExBB FM 1.0 RC1