$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 mail () отправляет электронное письмо, но для отображения требуется более 10 минут
- Простой способ отправки электронной почты с помощью javascript и PHP
- Не работает скрипт php mail ()
- Ошибка с PHP mail (): множественные или неверные строки, найденные в дополнительном_header
- Основная функция почты (PHP) дополнительный параметр параметра «-f»
Я изменил файл “ 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: