При создании профессиональных веб-приложений может возникнуть необходимость тестирования email-функциональности (отсылаются ли письма, верно ли задана стилизация для них, правильно ли сформирована новостная рассылка и т.д.).
Чтобы настроить отправку писем через WAMP, нам понадобится воспользоваться следующим решением (будет работать для версий WAMP Server от 2.0c и старше).
Для начала нам понадобится скачать sendmail.exe (CLI-программа, которая соединяется с SMTP-сервером и отправляет электронное письмо).
Далее делаем следующие шаги.
1. Создаем папку с именем «sendmail» в каталоге «C:\wamp\»
2. Извлекаем следующие 4 файла в папку «sendmail»: «sendmail.exe», «libeay32.dll», «ssleay32.dll» и «sendmail.ini».
3. Открываем файл sendmail.ini и настраиваем для него следующие данные:
- smtp_server=smtp.gmail.com
- smtp_port=465
- smtp_ssl=ssl
- default_domain=localhost
- error_logfile=error.log
- debug_logfile=debug.log
- auth_username=[your_gmail_account_username]@gmail.com
- auth_password=[your_gmail_account_password]
- pop3_server=
- pop3_username=
- pop3_password=
- force_sender=
- force_recipient=
- hostname=localhost
Задавать значения свойств pop3_server, pop3_username, pop3_password, force_sender, force_recipient не нужно. Параметры error_logfile и debug_logfile должны быть оставлены пустыми, если вы успешно отправляли ранее письма, иначе размер этих файлов будет увеличиваться. Включите эти лог-файлы, если у вас не получится отправить email через sendmail.
4. Включите IMAP Access в настройках своей GMail-почты: «Settings» -> «Forwarding and POP/IMAP» -> «IMAP Access».
5. Включите «ssl_module» для сервера Apache:
6. Включите расширения «php_openssl» и «php_sockets» для компилятора PHP:
7. Откройте файл php.ini, который содержится в папке «C:\wamp\bin\apache\Apache2.2.17\bin» и настройте его следующим образом (вам нужно просто сконфигурировать последнюю строку в представленном коде. Напротив остальных строк ставится префикс точка с запятой):
[mail function] ; For Win32 only. ; http://php.net/smtp ;SMTP = ; 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:\wamp\sendmail\sendmail.exe -t -i"
Примечания:
php.ini в «C:\wamp\bin\php\php5.3.x» не будет работать.
8. Делаем рестарт WAMP Server.
9. Создаем PHP-файл и вносим в него следующий код:
<?php $to = '[email protected]'; $subject = 'Testing sendmail.exe'; $message = 'Hi, you just received an email using sendmail!'; $headers = 'From: [email protected]' . "\r\n" . 'Reply-To: [email protected]' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)) echo "Email sent"; else echo "Email sending failed"; ?>
10. Вносим необходимые изменения в переменные $to и $headers, чтобы задать получателя, отправителя и адрес ответа. Сохраняем файл как send-mail.php (вы можете сохранить его в любой подпапке C:\wamp\www).
11. Открываем этот файл в браузере. Теперь он должен работать.
Примечание: если путь к sendmail.exe содержит в себе пробелы (к примеру, «C:\Program Files\PHP\sendmail\»), то в таком случае Apache не сможет найти этот файл. Потому либо сохраняйте sendmail.exe в таком месте, чтобы путь к нему не содержал пробелов, либо запишите путь в DOS-стиле: «C:\Progra~1\PHP\sendmail\». Пример: sendmail_path = «C:\Progra~1\PHP\sendmail\sendmail.exe -t -i»).
P.S. Я лично проверил работоспособность данного решения на своем локальном сервере. Письмо успешно отправилось!
Источник: blog.techwheels.net
Полезная статья!
Большое спасибо,отличный гайд. Все работает.
А без этого wamp где-нибудь хранит письма локально? Как денвер, например.
Этого, к сожалению, сказать не могу.
Ответ уже нашла: в WAMP Server нет почтового эмулятора, так что буду пробовать Ваш вариант. Спасибо. Возможно, удастся его настроить на локальную работу.
Спасибо все классно работает!
Добрый день. помогите. уже 1000 сайтов перечитал и делал все как написано. и Вашу статью 4 раза перепроверял. и все равно не отправляет моя джумла письма.
Стоит вамп сервер. вроде все повключал. пхп ини настроил. сендмеил настроил. нифига не отправляется. сил нету уже…
даже почту другую регил думал мало ли что. пишет не могу отправить письмо и все тут…
С Джумлой не знаю, как быть. В WordPress у меня данная инструкция сработала, поскольку сам сталкивался с такой проблемой, и все удалось настроить.
Здраствуйте, когд начад настаивать wampp, и вносил изменения в send-mail.php
то никакой реакции нет от отправки!
$to = ‘[email protected]’;
$subject = ‘Testing sendmail.exe’;
$message = ‘Hi, you just received an email using sendmail!’;
$headers = ‘From: [email protected]‘ . «rn» .
‘Reply-To:[email protected]’ . «rn» .
‘MIME-Version: 1.0’ . «rn» .
‘Content-type: text/html; charset=iso-8859-1’ . «rn» .
‘X-Mailer: PHP/’ . phpversion();
if(mail($to, $subject, $message, $headers))
echo «Email sent»;
else
echo «Email sending failed»;
Так а вы $to и $headers настроили?
Спасибо! Единственное толковое пошаговое руководство из тех, что мне удалось найти.
Спасибо огромное, все работает!
не сработало. :(
sorry , мой косяк. вске работает. Спасибо за дельную инструкцияю
Ok :)
Подскажите плиз, а для Open Servera какие настройки.