![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Неизвестный программист |
|
|||
|
Unregistered |
Помогите!Что делать с такой прогой:
Файл sendmail.dpr
У меня Delphi 2005.Открываю этот файл и появляется диалоговое окно: Upgrading Project: sendmail.dpr this project must be upgraded before it can be opened.Please select which project type you wish to target Delphi for .NET Delphi for Win32 Я отмечаю Delphi for Win32 и нажимаю OK, Но когда пытаюсь скомпилировать программу или запустить (F9) мне говорят: [Error] sendmail.dpr(178): E2003 Undeclared identifier: 'AuthenticationType' [Error] sendmail.dpr(178): E2003 Undeclared identifier: 'atLogin' Также в Инете я нашел несколько примеров отправки почты с использованием компонентов Indy,но там такая же история:Undeclared identifier: 'AuthenticationType' и все тут! Прошу писать подробно,так как я с Delphi совсем недавно знаком. Напоминаю,что программа консольная,то есть без формы. Это сообщение отредактировал(а) Girder - 30.3.2005, 16:07 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Под Delphi 7 скомпилилось на ура.
Посмотрел 78-ю строку. Все нормально. Если на нее ругается, то какие-то проблемы с TIdSMTP. Может другую версию скачать? В принципе необходимости в этой строке нет. Закомментируй ее. |
|||
|
||||
| Неизвестный программист |
|
||||||
|
Unregistered |
Я вообще-то диск покупал,а не скачивал.Это что же,мне новую версию Delphi выбрасывать на помойку и взять старую?????
Разве эта строка не ответственна за авторизацию на SMTP-сервере?
А какие могут быть проблемы?Она входит по умолчанию в Delphi и как это узнать? |
||||||
|
|||||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
В Delphi 2005 стоит Indy 10(а в D7 Indy 9), если мне не изменяет память. Вот видимо в этом и траблы все, возможно, что свойство как то изменено - проверить нет возможности, т.к. Delphi 2005 слетела (только что запускал - ни один проект создать нельзя, ерроры летят
Это сообщение отредактировал(а) <Spawn> - 30.3.2005, 19:04 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Неизвестный программист |
|
|||
|
Unregistered |
А у тебя несколько версий Delphi стоят? Я вообще запутался с этим. Как я понял,раньше главным файлом проекта был файл с расширением *.dpr. А в Delphi 2005 - *.bdsproj. Это что же за такое безобразие - напишешь какую-нибудь полезную прогу, а потом в новой версии тебе скажут гудбай и выкидывай свою прогу на мусорку? Идиотизм полный... |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: нет Всего: 11 |
Д2005 не стоит раньше устонавливал) на ней не создовал проекты так что сказать не могу какого раширения они но вот могу сказать с вереностью на 100% что *.dpr проекты она открывает и компилит на ура) Это сообщение отредактировал(а) FRAGNATIC - 31.3.2005, 01:22 |
|||
|
||||
| Неизвестный программист |
|
|||
|
Unregistered |
Ну да!Я уже понял.При открытии файла .dpr Delphi 2005 добавляет в папку с исходниками файл проекта с другим расширением - bdsproj.И сколько я находил в инете примеров программ отправки почты - ни одна не компилируется - все время говорит "Undeclared identifier: 'AuthenticationType" Может кто-то все-таки знает как из Delphi 2005 почту отправить? Или у меня липа какая-то стоит? Или там копаться где-то еще надо? А то говорят - такая типа продвинутая и удобная версия,облегчающая работу программиста...облегчение конечно большое... |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Хех, сумел я ее все таки запустить и вот что увидел - теперь это свойство назвается AuthType и имеет значения atDefault, atNone, atSASL
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Естественно. Я имел ввиду компоненты Indy. Их можно закачать.
Судя по обсуждениям на форумах, лучше использовать D7 или D6. Про D8 и D2005 отзывы не лучшие.
Она определяет тип аутентификации. С большой долей уверенности можно сказать, что будет работать и без такого определения. |
||||||
|
|||||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 1 Всего: 112 |
Перенесено из раздела Дельфи
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
А как же тогда аутентификация будет? Ведь в этой строке её тип указывается! Не зря же она присуствовала в проге! Просто теперь,как выяснилось,надо писать AuthType. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
А вместо atLogin теперь писать atDefault? |
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Будет принято значение по умолчанию.
Да. Хотя по идее она и так должна быть Default. |
||||
|
|||||
| Неизвестный программист |
|
|||
|
Unregistered |
Большое спасибо за ответ!А еще прошу разъяснить следующие вещи:
что означают слова nil и with как в этой программе обрабатываются исключительные ситуации (что значит "on e:Exception do" и откуда переменная e.message). |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: нет Всего: 11 |
nil - 0 обнулить чёнить или в функцию передать если не известно значение чего либо
with - "c" тоесть с чем-то что-то делать дапустим
|
|||
|
||||
| Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
nil - указатель на ничто. Применяется либо для зануления указателей (если присваиваем переменной), либо как параметр (когда хотим указать, что мы не собираемся ни на что указывать). with - используется зля укорачивания кода. Этим словом мы указываем, что будем работать со свойствами данного объекта. Например
Оттуда и взялась, что тут ты указал, что зовут ее так. Это обработка исключительных ситуаций. Почитай в хелпе. Создается класс-исключение. Чтобы получить его текст вручную, а не ловить стандартное окно об ошибке и требуется такая конструкция. |
||||||
|
|||||||
| Неизвестный программист |
|
|||
|
Unregistered |
Когда я убираю "try" из такого фрагмента:
// deliver message with TIdSMTP.Create(nil) do try Host := smtpServer; if (authUsername <> '') then begin AuthenticationType := atLogin; Username := authUsername; Password := authPassword; end; Connect; Send(msg); finally Free; end; мне почему-то говорят: Undeclared identifier: 'AuthType' Undeclared identifier: 'Username' Undeclared identifier: 'Password' Undeclared identifier: 'Connect' Undeclared identifier: 'Send' Undeclared identifier: 'Free' Ведь "try" же управляет обработкой исключительных ситуаций? Почему тогда удаление "try" так повлияло на все остальное? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
потома как ты begin забыл дописать и with начинает влиять только на первую строку
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Loquerisne Latine??? |
|||
|
||||
| Неизвестный программист |
|
|||
|
Unregistered |
А как бы сделать так,чтобы почтовые компоненты кодировку не трогали?У меня PHP-скрипт на локальном сервере в заголовок письма вставляет "Content-Type: text/html;charset=windows-1251",а когда письмо доходит,в нем почему-то остается только "Content-Type:text/html".И тема письма становится такой: ?KOI8-R?B?0uXs4A==?=
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Модератор: Пожалуйста, один топик - один вопрос.
Попробуй установить кодировку в TidMessage.CharSet Это сообщение отредактировал(а) <Spawn> - 2.4.2005, 07:03 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Так я же не могу заранее знать,какая у всех писем кодировка!Нельзя ли сделать так,чтобы сообщение из стандартного ввода отсылалось таким,какое оно есть? Или может быть,есть другой способ отправки почты?Через сокеты например?А то в этих компонентах,я вижу,какой-то непродуманный способ формирования и отсылки писем применяется. |
|||
|
||||
| Неизвестный программист |
|
|||
|
Unregistered |
Или сделать так,чтобы заголовки сообщения не изменялись.
|
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
После msg := TIdMessage.Create(nil); Добавь msg.NoEncode:=true; P.S. Зарегестрируйся. Добавлено @ 07:10
Не изменялись? Они создаются с нуля. Но если тебе так важны заголовки, то удаляй ненужные из msg.HeaderList и добавляй свои. (Если удаляешь все - то на твой страх и риск - там ведь адреса откуда-куда прописаны). HeaderList - это TStringList, в котором находятся строки заголовка. Дополнительно есть msg.ExtraHeaders - дополнительные заголовки, но на настройки они не влияют. |
||||
|
|||||
| Неизвестный программист |
|
||||||
|
Unregistered |
Попробовал msg.NoEncode:=true. Письма стали приходить в нормальном виде,но почему-то не работает добавка заголовков в письмо.Например,конструкция типа: if (Msg.From.Address = '') then if (defaultFrom = '') then raise Exception.Create('email is missing sender''s address') else msg.From.Address := defaultFrom; Почему-то defaultFrom не подстанавливается на место обратного адреса,если его нет. Заголовки важны для указания кодировки письма.Кроме того,название темы менялось на ?koi-8? и т. д. Заголовки не с нуля формируются,а подаются на ввод программы в готовом виде,например,серверным скриптом. а как можно управлять заголовками через msg.HeaderList?Я и не собираюсь их все удалять - наоборот хочу оставить все как есть,и добавить,если каких-то не достает (дата,обратный адрес). |
||||||
|
|||||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Если заголовок уже готов - не нужно подставлять всякие адреса от кого-кому - они уже в заголовке должны быть. Просто чисти хедерлист и заполняй его своим. |
|||
|
||||
| Неизвестный программист |
|
|||
|
Unregistered |
А можно пример?Как работать с msg.headerlist.Между прочим,я нашел только msg.header,а IdHeaderList - отдельный компонент. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Ну да. Параметр называется header. TIdHeaderList - это класс.
header это как раз и есть параметр класса THeaderList. А работать с ним нужно почти так же, как и с обычным TStringList. Разница только в том, что добавление идет не через Add, а через AddStdValues. Причем параметр обязательно должен быть вида [email protected] То есть параетр=значение.
|
|||
|
||||
| Неизвестный программист |
|
|||
|
Unregistered |
Я написал вот так:
if (msg.Headers.Values['From'] = '') then msg.Headers.Values['From'] := defaultFrom; но мне в лог-файле сказали "Bad sequence of commands". Что это значит? И вообще в каких случаях такая надпись появляется? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |