2011-01-10 3 views
22

Я изучаю PHP и установил Xampp на свой компьютер.php mail setup in 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] 

[Пожалуйста, обратите внимание, я изменил выше л.с.: // из http: // из-за ограничения на этом сайте, чтобы опубликовать гиперссылку]

Есть ли что-нибудь, что мне нужно изменить? Я видел такое программное обеспечение, как упомянутый swiftmailer, но я не знаю, включил ли уже Xampp это уже? Любые советы были бы высоко оценены!

Благодаря Джеймс

+6

Xampp включает ртуть. Вы это настроили? Я думаю, что в документах также есть глава о том, как заставить PHP работать с ним. –

ответ

13

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

У этого есть хороший инсталлятор и волшебник, удобный для Windows. Руки вниз самый простой почтовый сервер, который я когда-либо настраивал.

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

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

+1

Привет, Байрон, есть ли какие-либо руководства по настройке прокси-сервера hMailserver для отправки писем в gmail и yahoo? – jasper

+0

Связано ли это только с окнами? –

+0

@ByronWhitlock есть ли альтернатива для Linux –

5

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

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

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

7

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 работали.