Настройка php-почты в xampp
Я изучаю 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 = [email protected]
[Обратите внимание, что я изменил выше hp://из http://из-за ограничения на этом сайте, чтобы опубликовать гиперссылку]
Есть ли что-то, что мне нужно изменить? Я видел такое программное обеспечение, как упомянутый swiftmailer, но я не знаю, включил ли уже Xampp это уже?
Любые советы будут очень признательны!
Спасибо
Джеймс
Ответы
Ответ 1
Мой любимый сервер smtp hMailServer.
У этого есть хороший установщик и волшебник, удобный для Windows. Руки вниз самый простой почтовый сервер, который я когда-либо настраивал.
Он может проксировать через вашу учетную запись gmail/yahoo/etc или отправлять электронную почту напрямую.
Как только он будет установлен, электронная почта в xampp будет работать без изменений конфигурации.
Ответ 2
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 = [email protected]
; 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 [email protected]
#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 работали.
Ответ 3
Если на вашем локальном компьютере не настроен почтовый сервер, настройка SMTP = localhost не будет иметь никакого эффекта.
В дни, прошедшие (давно), достаточно было установить значение SMTP на адрес вашего SMTP-сервера ISP. Это сейчас редко работает, потому что большинство интернет-провайдеров настаивают на аутентификации с именем пользователя и паролем. Однако функция PHP mail() не поддерживает аутентификацию SMTP. Он предназначен для работы непосредственно с агентом почтового транспорта локального сервера.
Вам либо нужно настроить локальный почтовый сервер, либо использовать классы PHP, поддерживающие аутентификацию SMTP, такую как Zend_Mail или PHPMailer. Самое простое решение - загрузить вашу почтовую обработку script на ваш удаленный сервер.