Я изучаю PHP и установил Xampp на свой компьютер.
Но у меня проблема с настройкой, так как опция электронной почты не работает.
После некоторого чтения я думаю, что это имеет какое-то отношение к приведенному ниже, найденному на моем сервере в файле php.ini
[mail function] ; For Win32 only. ; *hp://*php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = postmaster@localhost
[Обратите внимание, что я изменил выше hp: // из http: // из-за ограничения на этом сайте, чтобы опубликовать гиперссылку]
Есть ли что-то, что мне нужно изменить? Я видел такое программное обеспечение, как упомянутый swiftmailer, но я не знаю, включил ли уже Xampp это уже? Любые советы будут очень признательны!
Спасибо Джеймсу
Мой любимый SMTP-сервер – hMailServer .
У этого есть хороший удобный для Windows инсталлятор и мастер. Руки вниз самый простой почтовый сервер, который я когда-либо настраивал.
Он может проксировать через вашу учетную запись gmail / yahoo / etc или отправлять электронную почту напрямую.
После его установки электронная почта в xampp работает без изменений конфигурации.
XAMPP должен был иметь «поддельную» программу sendmail. В этом случае вы также можете использовать sendmail:
[mail function] ; For Win32 only. ; http://php.net/smtp ;SMTP = localhost ; http://php.net/smtp-port ;smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = "C:/xampp/sendmail/sendmail.exe -t -i"
Sendmail должен иметь sendmail.ini
; он должен быть настроен так:
# Example for a user configuration file # Set default values for all following accounts. defaults logfile "C:\xampp\sendmail\sendmail.log" # Mercury #account Mercury #host localhost #from postmaster@localhost #auth off # A freemail service example account ACCOUNTNAME_HERE tls on tls_certcheck off host smtp.gmail.com from EMAIL_HERE auth on user EMAIL_HERE password PASSWORD_HERE # Set a default account account default : ACCOUNTNAME_HERE
по# Example for a user configuration file # Set default values for all following accounts. defaults logfile "C:\xampp\sendmail\sendmail.log" # Mercury #account Mercury #host localhost #from postmaster@localhost #auth off # A freemail service example account ACCOUNTNAME_HERE tls on tls_certcheck off host smtp.gmail.com from EMAIL_HERE auth on user EMAIL_HERE password PASSWORD_HERE # Set a default account account default : ACCOUNTNAME_HERE
Разумеется, замените ACCOUNTNAME_HERE на произвольное имя учетной записи, замените EMAIL_HERE действительным письмом (например, Gmail или Hotmail) и замените PASSWORD_HERE паролем на ваш адрес электронной почты. Теперь вы можете отправлять почту. Не забудьте перезапустить Apache (из панели управления или пакетных файлов), чтобы изменения в PHP работали.
Если на вашем локальном компьютере не настроен почтовый сервер, настройка SMTP = localhost не будет иметь никакого эффекта.
В дни, прошедшие (давно), достаточно было установить значение SMTP на адрес SMTP-сервера вашего интернет-провайдера. Это сейчас редко работает, потому что большинство интернет-провайдеров настаивают на аутентификации с именем пользователя и паролем. Однако функция PHP mail () не поддерживает аутентификацию SMTP. Он предназначен для работы непосредственно с агентом почтового транспорта локального сервера.
Вам необходимо настроить локальный почтовый сервер или использовать классы PHP, поддерживающие аутентификацию SMTP, например Zend_Mail или PHPMailer. Самое простое решение – загрузить ваш почтовый скрипт на ваш удаленный сервер.