Ну, простыми словами:
Вы пытаетесь получить доступ к объекту, который не создан или в настоящее время не находится в памяти.
Итак, как это решить:
if (i == null) {
// Handle this
}
Поиск по имени означает, что некоторые фреймворки позволяют использовать FIndObjects с помощью строк, а код может выглядеть так: FindObject («ObjectName»);
Сработало
порядок событий очень важен
Этот работает
LMsg.ContentType: = 'text / plain'; LMsg.CharSet: = 'UTF-8';
Это не
LMsg.CharSet: = 'UTF-8'; LMsg.ContentType: 'текст / обычный';
В моем случае, если я добавляю вложение, я должен указывать только кодировку:
pMsg->CharSet = "UTF-8";
Еще один почтовый читатель показывает исходный код почты.
Это по дизайну. Когда свойство ContentType
задается, средство установки свойств может обновить свойство CharSet
со значением по умолчанию, если вход явно не указывает кодировку. Определенные типы контента, особенно в области text/
, имеют определенные настройки по умолчанию для набора символов, продиктованные в различных RFC. Indy пытается следовать этим правилам, насколько это возможно. Таким образом, вам нужно установить свойство CharSet
на ваше предполагаемое значение после того, как вы установили свойство ContentType
, как вы уже обнаружили:
//LMsg.CharSet := 'UTF-8';
LMsg.ContentType := 'text/plain';
LMsg.CharSet := 'UTF-8';
Вы также можете сделать это вместо:
LMsg.ContentType := 'text/plain; charset=UTF-8';