php отправлять почту с localhost

Я новичок в php. Я пытался отправить почту с php с помощью этого кода.

<?php $to = 'sohildesai.xxxx@gmail.com'; $subject = 'The subject'; $message = 'hello'; $headers = 'From: sohildesai.xxxx@yahoo.in' . "\r\n" . 'Reply-To: dhamaal_xxxx@yahoo.in' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> 

У меня есть настройки изменения в 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 = sohildesai.xxxx@gmail.com 

& в sendmail.ini

 # A freemail service example account Gmail tls on tls_certcheck off host smtp.gmail.com from sohildesai.xxxx@gmail.com auth on user sohildesai.xxxx@gmail.com password xxxxxxxxx # Set a default account account default : Gmail 

Теперь код работает успешно, но я не получаю почту.

Вы должны изменить файл 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 = you@yourdomain 

Он не будет работать, если localhost установлен, по этой причине изменитесь на ваш почтовый сервер.

У вас не будет установлен SMTP-сервер по умолчанию, поэтому вы не сможете напрямую отправлять электронные письма с localhost. Вы можете настроить SMTP-сервер на локальном компьютере или использовать сторонние SMTP-серверы. Посмотрите http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp, который дает вам представление о том, как отправлять почту с локального хоста, используя сторонний SMTP-сервер.

Функция не будет работать на вашем локальном хосте, поскольку locahost не работает как SMTP-сервер, загружает ваше содержимое на действительный сервер с установленным SMTP и затем отправляется на почтовый вызов.

На вашем сервере нет локального почтового сервера.

Существует несколько решений:

  • Установите локальный почтовый сервер, если у вас есть достаточные права
  • Измените свои настройки PHP, чтобы использовать другой почтовый сервер (другие открытые почтовые серверы или автоответчики, такие как Gmail, Yahoo и т. Д.).
  • Используйте одну из доступных почтовых библиотек, которая поддерживает IMAP / POP3 для обработки почты. SwiftMailer или Pear Mail являются наиболее часто используемыми.

Попробуйте установить ниже в своем php.ini,

  1. «SMTP» на «mail.YourDomain.com»
  2. "smtp_port" до "25"

ИЛИ вы можете установить этот параметр, используя php-скрипт,

// Укажите ваш почтовый сервер oR другого почтового сервера, который вы собираетесь использовать (например, gmail, yahoo)

 ini_set("SMTP","mail.YourDomain.com"); 

// Укажите SMTP-номер 25 и 8889, являются действительными SMTP-портами.

 ini_set("smtp_port","25"); 

Вот ссылка, которая дает мне ответ:

Установите «поддельный sendmail для окон». Если вы не используете XAMPP, вы можете скачать его здесь: http://glob.com.au/sendmail/sendmail.zip

Измените файл php.ini, чтобы использовать его (прокомментировали другие строки):

почтовая функция

Только для Win32.

 SMTP = smtp.gmail.com smtp_port = 25 

Только для Win32.

 sendmail_from = <e-mail username>@gmail.com 

Только для Unix. Вы также можете указать аргументы

 (default: "sendmail -t -i"). sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" 

(игнорируйте бит «Unix only», поскольку мы фактически используем sendmail)

Затем вам нужно настроить файл «sendmail.ini» в каталоге, где был установлен sendmail:

Отправить письмо

 smtp_server=smtp.gmail.com smtp_port=25 error_logfile=error.log debug_logfile=debug.log auth_username=<username> auth_password=<password> force_sender=<e-mail username>@gmail.com 

У меня был этот вопрос на прошлых неделях, на моих центрах centos, поделившись этим для других, также имеющих проблемы с mail () в php, не отправляя … Это разрешило проблему для всех моих скриптов PHP ().

 // Enable the sendmail in selinux setsebool -P httpd_can_sendmail 1 // Add the following to /etc/postfix/main.cf relayhost = smtp.server.com // Then from command line service postfix restart