Я новичок в 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.ini,
ИЛИ вы можете установить этот параметр, используя 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