Потратив 2 дня на эту проблему с php mail, я понял это и помог бы вам сделать то же самое. Это потратило достаточно времени, Давайте начнем ...
PHP имеет встроенную функцию php mail, которую можно использовать для отправки почты из скрипта, но эта функция каким-то образом ограничена, поскольку не может подключить вас к серверу простого протокола передачи почты (SMTP). Я предполагаю, что вы используете WAML / XAMPP, на самом деле не пробовали XAMPP, но вы можете понять это следующим образом:
Сначала нам нужно найти способ подключения нашего веб-сервера (wamp) к внешнему SMTP. В этом случае мы будем использовать Gmail, но перед этим нам нужно загрузить / установить инструмент, который будет извлекать нашу электронную почту из сценария php и отправлять ее в SMTP Gmail.
- Сначала перейдите на http://glob.com.au/sendmail/ и нажмите на загрузку
sendmail.zip
для загрузки.
- После загрузки извлеките в
C:\wamp\
извлеките его как папку, что означает, что его содержимое должно находиться в папке с именем sendmail и может находиться в C:\wamp\sendmail
.
- Теперь в папке отправки почты щелкните правой кнопкой мыши на
sendmail.ini
и откройте как администратор, так как мы собираемся изменить его содержимое.
изменить следующие строки
[sendmail]
smtp_server=smtp.gmail.com
smtp_port= 465
smtp_ssl=ssl
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
auth_username= enter your gmail account here
auth_password= enter the password for that account here
;pop3_server=
;pop3_username=
;pop3_password=
;force_sender=
;force_recipient=
hostname= localhost
Пожалуйста, будьте осторожны и делайте, как вы видите выше. Я удалил большую часть нежелательного содержимого из моего sendmail.ini
файла, чтобы его было легче читать.
Сохранить файл
Перейдите в папку wamp
и перейдите к bin\apache\apache[version here]\bin\php.ini
и измените php-файл от имени администратора следующим образом:
Если вы используете блокнот, вы можете использовать поиск на вкладке редактирования или ctrl + F и набрать "mail function" для быстрой навигации в почтовую часть файла php.ini
.
[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 =
;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" ----> this is the changed part.
Примечание: только sendmail_path
вы должны изменить на вышеуказанное. Оставьте другие настройки такими, какими вы их видите.
Ваш путь может отличаться в зависимости от того, куда вы распаковали папку sendmail.
Сохранить этот php.ini
файл
Вернитесь к C:\wamp\bin
и выберите php\php[version here]\php.ini
и отредактируйте путь sendmail, как вы делали выше, и сохраните файл как администратор / или перед открытием откройте как администратор, щелкнув правой кнопкой мыши
Запустите wampserver от имени администратора и, когда он станет зеленым, включите следующее:
Щелкните левой кнопкой мыши по зеленому значку и перейдите к php -> php extensions -> php_sockets (нажмите, чтобы включить черный флажок)
дождитесь, пока значок снова станет зеленым, и следуйте приведенным выше инструкциям, чтобы включить php_openssl.
Если значок становится зеленым, то пора включить apache ssl_module, перейдя в apache icom, когда вы нажмете на зеленый значок сервера вампиров. Вы можете найти это в модулях Apache.
Когда вы закончите с тремя шагами выше, выйдите и снова запустите wampserver как администратор, чтобы внести изменения.
Вернитесь в извлеченную папку sendmail и щелкните правой кнопкой мыши на sendmail.exe
Перейдите в его свойства -> Совместимость -> Изменить настройки для всех пользователей -> Режим совместимости [смените на Windows XP (пакет обновления 3)] -> Запустите эту программу от имени администратора [отметьте эту опцию].
Сохранить и применить.
Мы должны были сделать так, чтобы каждый раз, когда мы вызывали приложение sendmail, оно запускалось от имени администратора.
Теперь нам нужно настроить нашу учетную запись gmail для работы с этим приложением sendmail.
Войдите в учетную запись Gmail и в правом верхнем углу нажмите на шестерню, чтобы выбрать настройки. В настройках перейдите на вкладку «Пересылка» и «POP / IMAP» и включите IMAP. Сохранить изменения
Наконец вернитесь в свой почтовый ящик, в правом верхнем углу рядом с вашим адресом электронной почты находится небольшая стрелка, указывающая вниз, нажмите на нее, чтобы выбрать Мой аккаунт. Если у вас его нет, вы можете попробовать щелкнуть по изображению своего профиля, чтобы выбрать «Мой аккаунт».
Нажмите на вкладку «Вход и безопасность» и прокрутите вниз до нижней части страницы. Вы найдете Разрешить менее безопасные приложения: и включите его. В основном это было бы выключено.
Это все, что вам нужно сделать, чтобы вы могли теперь отправлять электронную почту из ваших php-скриптов на localhost.Теперь вы можете попробовать вашу функцию mail()
с 4 минимальными параметрами и посмотреть.Надеюсь это поможет.Проголосуйте, если это поможет, поэтому я смогу опубликовать более интересные решения.