Другим сценарием является то, что вы нанесли нулевой объект в тип значения . Например, код ниже:
object o = null;
DateTime d = (DateTime)o;
Он выкинет NullReferenceException
в роли. В приведенном выше примере это кажется совершенно очевидным, но это может произойти в более «поздних связующих» сложных сценариях, где нулевой объект был возвращен из некоторого кода, которого вы не являетесь, и приведение, например, генерируется некоторой автоматической системой.
Одним из примеров этого является этот простой фрагмент привязки ASP.NET с элементом управления календарем:
" />
Здесь SelectedDate
на самом деле является свойством - типа DateTime
- типа Calendar
Web Control, и привязка может отлично вернуть что-то null. Неявный генератор ASP.NET создаст кусок кода, который будет эквивалентен приведенному выше методу. И это поднимет NullReferenceException
, что довольно сложно определить, потому что он лежит в сгенерированном ASP.NET коде, который компилирует отлично ...
Вы должны запускать почтовый сервер локально. Если это Unix, включите sendmail. Если это Windows, установите Simple Mail Transfer Server (не уверен, правильно ли это имя) компонент II. Например. для Windows 2003 выполните следующие действия: http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx
php не разрешает или считает очень сложным отправлять электронную почту с localhost, но эта проблема будет решена, если вы загрузите проект на сервер. и если вы хотите проверить, отправлено ли электронное письмо или нет на локальном сервере, вам необходимо загрузить smtp4dev и установить и запустить его. Это даст вам сообщение, если ваше письмо отправлено успешно или возникла проблема с вашим кодом.
blockquote>
Прежде всего, вы не должны использовать SMTP на своем локальном хосте, если вы измените эту запись localhost на DNS-имя MTA у вашего провайдера интернет-провайдера (который позволит вам пересылать почту), он будет работать сразу , поэтому не нужно общаться с вашим собственным почтовым сервисом. Просто попробуйте использовать SMTP-серверы ваших поставщиков, он будет работать сразу.
Функция почты PHP может отправлять электронную почту в 2 сценариях:
a. Попробуйте отправить электронную почту через unix sendmail. В linux будет выполняться программа «sendmail», поместить все параметры в sendmail и все.
OR
b. Подключитесь к почтовому серверу (используя протокол smtp и host / port / username / pass from php.ini) и попробуйте отправить электронное письмо.
Если php не может подключиться к серверу электронной почты, он будет предупреждать (и вы видите такую работу в своих журналах). Чтобы решить эту проблему, установите smtp-сервер на локальный компьютер или используйте любой доступный сервер. Как настроить / настроить smtp вы можете найти на php.net
Если вы используете приложение только на локальном хосте, и оно еще не вживлено, я считаю, что это очень сложно отправить почтой с помощью этого.
Как только вы разместите свое приложение онлайн, я считаю, что эта проблема должны быть автоматически решены. Bbut, я думаю, ini_set()
поможет вам изменить значения в php.ini
во время выполнения.
Для отправки писем с использованием функции php mail. Но для функции электронной почты требуется SMTP-сервер для отправки сообщений электронной почты. мы должны упомянуть SMTP-хост и SMTP-порт в файле php.ini. После успешной настройки SMTP-сервера письма будут отправлены успешно отправленными через php-скрипты.
В окнах почти все пакеты AMPP (Apache, MySQL, PHP, PHPmyAdmin) не включают почтовый сервер (но у почти всех обнаженных linux есть!). Таким образом, при использовании PHP под окнами вам нужно настроить почтовый сервер!
Imo лучший и самый простой инструмент ist this: http://smtp4dev.codeplex.com/
SMTP4Dev - это простой однопользовательский почтовый сервер, который собирает отправленные им письма (поэтому он не отправляет почту, а просто сохраняет их для разработки). Идеальный инструмент.