Несколько дней разбираюсь с отправкой писем с помощью 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 яндекса?
Знаю, что на движке форуме есть отправка писем, как это организовано у нас?
Прошу поделить опытом, отправка писем, наверное, вопрос тривиальный, но сложный для меня. Спасибо за ответы.
1. Contr - 17 Июня, 2016 - 10:53:47 - перейти к сообщению
2. Viper - 17 Июня, 2016 - 14:07:18 - перейти к сообщению
1. http://php.net/manual/ru/mail.requirements.php
2. да
3, 4. да
Вопросы:
1. Можно
https://github[dot]com/PHPMailer/PHPMailer/ решит ваши проблемы.
2. да
3, 4. да
Contr пишет:
и не будет ибо SSL/TLS. В открытом виде там ничего нет.установить telnet. Я попробовал достучаться с него до smtp.yandex.ru 465 - ответа не было.
Вопросы:
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 или нет?
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" . Может, вы знаете?
Получается, без него можно обойтись.
Я постараюсь поискать, каким образом реализована эта "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(), без которых можно обойтись, которые просто сокращают код?
Тем более отправка почты как явление появилось еще "со времен динозавров".
Мне только один вопрос пока не дает покоя: если отпраку почты можно реализовать при помощи набора файлов из проекта на гитхабе, то почему в php нет стандартной (встроенной) библиотеки / класса, в котором все бы это уже было бы реализовано?
Ведь есть же всякие функции, к примеру, in_array(), без которых можно обойтись, которые просто сокращают код?
Тем более отправка почты как явление появилось еще "со времен динозавров".
8. Viper - 18 Июня, 2016 - 00:10:40 - перейти к сообщению
Contr пишет:
наверное исторически так сложилось, что sendmail под линухами был давно и с этим проблем не было. Появилась винда с её сборками серверов и тут началось... Долго под винду sendmail'а не было, но потом запилили. Отсюда возможно и появилось что имеем.почему в php нет стандартной (встроенной) библиотеки / класса, в котором все бы это уже было бы реализовано?
В PHP много чего нет в стандартной поставке(поиск модулей и подключение это ещё тот геморой). К тому же работа с почтой это довольно не тривиальная задача.