php send почтовый код не работает

$to = "jijodasgupta@gmail.com"; $subject = "Hi!"; $body = "Hi,\n\nHow are you?"; if (mail($to, $subject, $body)) { echo("pMessage successfully sent!/p"); } else { echo("pMessage delivery failed.../p"); } 

Написал базовый код php sendmail, но он дает мне следующую ошибку:

Предупреждение: mail () [function.mail]: «sendmail_from» не установлен в php.ini или пользовательский заголовок «From:» отсутствует в C: \ xampp \ htdocs \ mail.php в строке 5 Ошибка доставки сообщений …

Я изменил файл “ php.ini и поместил sendmail_from=jijodasgupta@gmail.com но проблема все еще сохраняется. Написание почтового сценария в первый раз.

Я делаю что-то неправильно? Есть лучший способ сделать это?

Дополнительные_документы (необязательно)

Строка, которая будет вставлена ​​в конец заголовка электронной почты.

Обычно это используется для добавления дополнительных заголовков (From, Cc и Bcc). Несколько дополнительных заголовков должны быть разделены CRLF (\ r \ n).

Примечание. При отправке почты почта должна содержать заголовок From. Это можно задать с помощью параметра дополнительные_headers, или по умолчанию можно установить в php.ini. В противном случае появится сообщение об ошибке, подобное предупреждению: mail (): «sendmail_from», не установленному в php.ini или пользовательском заголовке «From:». В заголовке From также указывается Return-Path под Windows.

Надеюсь, это поможет.

Во-первых, проверьте, что вы отредактировали правильный php.ini – добавьте phpinfo(); на ваш скрипт выводит диагностическую информацию, в том числе местоположение php.ini. Также вы также можете увидеть настроенное значение «sendmail_from».

В противном случае укажите заголовок From, как указано usoban

 $hdrs="From: jijodasgupta@gmail.com"; mail($to, $subject, $body, $hdrs); 

Если вы отредактировали правильный php.ini, и он не отражает ваше изменение, вы можете перезапустить веб-службу, так как многие среды будут загружать php.ini только при запуске сервера.

Я столкнулся с той же проблемой, и это закончилось тем, что мой сервер использовал account@servername как адрес электронной почты, хотя я указал свой собственный в заголовках.

Ответ, который я нашел где-то в другом месте, заключался в том, чтобы добавить 5-й параметр к почтовому вызову, чтобы заставить систему использовать указанный мной адрес электронной почты:

 $from = 'fromemail@domain.com' $xheaders = "From: " . $from . " <" . $from . ">\n"; $i = mail("$useremail","$subject","$content",$xheaders,'-f fromemail@domain.com'); 

Вместо того, чтобы устанавливать адрес формы в php.ini, просто отправьте его в заголовки, например, вместо usoban.

Это избавит вас от головных болей, когда вы размещаете другой сайт с той же настройкой и не забудьте установить заголовки в следующий раз.

Функция PHP mail () создает много проблем. Когда вы, наконец, получите его работу на своем сервере, вы заметите, что ваши письма попадают в папки спама ваших пользователей.

Я бы рекомендовал отправить почту, используя одну из этих библиотек PHP SMTP:

  • Стандарт PHPMailer – de facto
  • http://swiftmailer.org/ – более современный подход, но меньшая пользовательская база