Настройка 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 на ваш удаленный сервер.