Настройте сервер WAMP для отправки электронной почты
Есть ли способ настроить сервер WAMP для PHP, чтобы включить функцию mail()
?
7 answers
Настройка рабочего почтового клиента с локального хостинга - довольно тяжелая работа, я потратил часы разочарования, пытаясь это сделать. Я уверен, что кто-то более опытный сможет помочь, или, возможно, они согласятся со мной.
Если вы просто хотите протестировать, вот отличный инструмент для локального тестирования почты, который практически не требует настройки:
Http://www.toolheap.com/test-mail-server-tool/
Для меня это сработало с самого начала, надеюсь, это поможет вам.
Установить Поддельную отправку почты (скачать sendmail.zip ). Затем настройте C:\wamp\sendmail\sendmail.ini :
smtp_server=smtp.gmail.com
smtp_port=465
[email protected]
auth_password=your_password
Вышесказанное будет работать с учетной записью Gmail. А затем настройте php.ini:
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
Теперь перезапустите Apache, и это в основном все, что вам нужно сделать.
Используя вызов программы с открытым исходным кодом Отправить почту , на самом деле вы можете отправлять через wamp довольно легко. Я все еще настраиваю его, но вот отличный учебник Джо Джордана. Настройка занимает менее 2 минут.
Просто попробовал, и это сработало как заклинание! Как только я раскомментировал журнал ошибок и обнаружил, что он зависает при аутентификации pop3, я просто удалил его, и он был отправлен красиво. Желаю удачи!
Вам нужен SMTP-сервер для отправки вашей почты. Если у вас есть доступный, который не требует аутентификации по SMTP (может быть, у вашего провайдера?) просто отредактируйте настройку "SMTP" ([функция почты]) в вашем файле php.ini.
Если это невозможно, потому что ваш SMTP-сервер требует аутентификации, вы не сможете использовать функцию внутренней почты() и вам придется использовать какой-либо сторонний класс, поддерживающий аутентификацию smtp. например, http://pear.php.net/package/Mail/
Я попробовал протестировать инструмент почтового сервера, и хотя он отлично работал, вам все равно нужно открыть электронную почту на каком-нибудь клиенте.
Я нашел Вырезку из бумаги: https://papercut.codeplex.com/
Для настройки это простой инструмент для тестирования почтового сервера (практически нулевой конф), а также он служит почтовым клиентом с представлениями для сообщения (отлично подходит для HTML-писем), Заголовки, Тело (для проверки HTML) и Необработанное (полное нераспечатанное электронное письмо).
Это также имеет представление Разделов , чтобы разделить различные типы носителей, найденные в электронном письме.
Он имеет супер чистый и дружественный пользовательский интерфейс, хороший просмотрщик журналов и дает вам уведомления, когда вы получаете электронное письмо.
Я нахожу это идеальным, поэтому я просто хотел отдать свой 2c и, возможно, помочь кому-то.
Sendmail не работал на меня, поэтому я использовал msmtp 1.6.2 w32, и большинство просто следовали инструкциям на стороне разработчика. Вот краткое изложение установки для потомков:
Включен доступ по протоколу IMAP под вашей учетной записью Gmail (с которой msmtp отправляет электронные письма)
Включите доступ для менее безопасных приложений. Войдите в свой аккаунт Google и перейдите сюда
Редактировать php.ini
, найдите и измените каждый параметр ниже, чтобы отразите следующее:
; These are commented out by prefixing a semicolon
;SMTP = localhost
;smtp_port = 25
; Set these paths to where you put your msmtp files.
; I used backslashes in php.ini and it works fine.
; The example in the devside guide uses forwardslashes.
sendmail_path = "C:\wamp64\msmtp\msmtp.exe -d -C C:\wamp64\msmtp\msmtprc.ini -t --read-envelope-from"
mail.log = "C:\wamp64\msmtp\maillog.txt"
Создайте и отредактируйте файл msmtprc.ini
в том же каталоге, что и ваш файл msmtp.exe
следующим образом, заменив его своим собственным адресом электронной почты и паролем:
# Default values for all accounts
defaults
tls_certcheck off
# I used forward slashes here and it works.
logfile C:/wamp64/msmtp/msmtplog.txt
account Gmail
host smtp.gmail.com
port 587
auth on
tls on
from [email protected]
user [email protected]
password ReplaceWithYourPassword
account default : gmail
Я использовал Mercury/32 и Pegasus Mail, чтобы получить функцию mail(). Он также отлично работает в качестве почтового сервера, если вы хотите, чтобы адрес электронной почты заканчивался вашим доменным именем.