Как я могу отправить автоматическое электронное письмо на введенный пользователем адрес электронной почты?
У меня Xampp, который является локальным веб-сервером, оснащенным Apache, и Mercury для почты.
Идеи?
Чтобы отправить электронное письмо, выполните поиск почты .
Чтобы запланировать задачу в Linux, найдите crontab.
Чтобы запланировать выполнение задачи в Windows, обратите внимание на планирование задач на панели управления.
И не используйте Xampp для производства. Это небезопасно.
Вместо функции mail () php вы должны использовать что-то вроде http://swiftmailer.org
Вы можете легко выполнить smtp-аутентификацию, шифрование, mime-mail, кодировку символов, пакетную рассылку …
И вы получаете гораздо более надежную отчетность об ошибках.
Это не ответ на ваш вопрос, но он может быть уместен:
Мой опыт работы с локальным веб-сервером заключается в том, что почта не дойдет до места назначения. Это зависит от вашего isp, но если у вас есть изменяющийся IP-адрес при каждом подключении к вашему isp (dial-up, adsl, cable), ваша исходящая почта скорее всего будет отклонена почтовым сервером получателей.
Многие из этих IP-диапазонов, которые дают своим клиентам, блокируются фильтрами спама.
По крайней мере, диапазон, в котором я участвую: 🙂
Будьте осторожны, потому что плохие люди будут писать сценарии, чтобы отправить вашу форму с помощью миллионов адресов электронной почты и попытаться отправить спам. Они также (попытаются) внедрить \ r \ n в представленном адресе, чтобы выписать другой контент и заголовки. Я делаю что-то вроде этого:
function sanitize($s) { $badheaders = array("/to\:/i", "/from\:/i", "/bcc\:/i", "/cc\:/i"); $s = preg_replace($badheaders, '(spam)', $s); if (strlen($s) > 2048) { $s = substr($s, 0, 2048); $s = $s." (TRUNCATED)"; } return $s; }
затем я запускаю введенные пользователем строки через sanitize () перед вызовом mail (). Разумеется, YMMV.
php.net/mail :
mail($to, $subject, $messge);
Вы можете использовать phpmailer для отправки почты через SMTP-протокол, эта библиотека очень хороша! (WordPress CMS его использует!)