настройка почты php в xampp - PullRequest
       31

настройка почты php в xampp

24 голосов
/ 11 января 2011

Я изучаю 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?Любые советы будут с благодарностью!

Спасибо, Джеймс

Ответы [ 3 ]

13 голосов
/ 11 января 2011

Мой любимый SMTP-сервер: hMailServer .

. Имеет удобный установщик и мастер, работающий с Windows.Вручите самый простой почтовый сервер, который я когда-либо устанавливал.

Он может прокси через вашу учетную запись gmail / yahoo / etc или напрямую отправлять электронную почту.

После установки электронная почта в xampp просто работаетбез изменений конфигурации.

8 голосов
/ 11 января 2011

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

Конечно, замените ACCOUNTNAME_HERE на произвольное имя учетной записи, замените EMAIL_HERE на действительный адрес электронной почты (такой как Gmail или Hotmail) и замените PASSWORD_HERE паролем к вашемуЭл. адрес.Теперь вы должны иметь возможность отправлять почту.Не забудьте перезапустить Apache (из панели управления или из пакетных файлов), чтобы изменения в PHP заработали.

5 голосов
/ 11 января 2011

Если на локальном компьютере не настроен почтовый сервер, настройка SMTP = localhost не будет иметь никакого эффекта.

В прошлом (давным-давно) было достаточно установить значение SMTP для адреса SMTP-сервера вашего провайдера. Теперь это редко работает, потому что большинство интернет-провайдеров настаивают на аутентификации с использованием имени пользователя и пароля. Однако функция PHP mail () не поддерживает аутентификацию SMTP. Он предназначен для работы непосредственно с почтовым транспортным агентом локального сервера.

Вам нужно либо настроить локальный почтовый сервер, либо использовать класс PHP, поддерживающий аутентификацию SMTP, такой как Zend_Mail или PHPMailer. Однако самое простое решение - загрузить скрипт обработки почты на удаленный сервер.

...