На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
Страницы: (4) 1 2 [3] 4  все  ( Перейти к последнему сообщению )  
> Что это за ошибка?
    Скажите а что это за параметры? Для чего они могу быть?

    ExpandedWrap disabled
       IpSmtpClient1.IdleTimeout
        IpSmtpClient1.IdleTime
        IpSmtpClient1.TimerInterval
        все тип cardinal
      Тебе надо найти помощь по твоему компоненту IpSmtpClient.
      По названиям можно судить только вот что:
      IpSmtpClient1.IdleTimeout тайм-аут холостого выполнения
      IpSmtpClient1.IdleTime время холостого выполнения (непонятно чем реально отличается от IdleTimeOut)
      IpSmtpClient1.TimerInterval интервал для таймера (а вот какого неизвестно)
      все тип cardinal

      P.S. Самая лучшая дока - исходники компонента.
        Не подскажете как обработать неудачную отправку? То есть какое свойство отвечает за НЕОТПРАВЛЕННЫЙ ЕМЭЙЛ. Все свойства компонента на картинке на несколько сообщений выше.
          Посмотри такие события :
          OnError
          OnConnectError
          OnErrorReply
          OnNextMessage
          Установи их обработчики и прожурналируй (или еще как нибудь), что они получают/возвращают и когда вызываются.
            Если не трудно то подскажите как можно поставить вместо емэйла в поле аутлука ОТ "От Васи Пупкина"

            То есть чтобы письмо вошедшее на компьютер получателя имело вид ОТ "От Васи Пупкина" ну а уж под ним емэйл. Кажется объяснил не очень понятно.

            Как может называться данный параметр?
              Попробуй параметр "From" задать в виде:
              ExpandedWrap disabled
                    XXX.From := '"From Vasia pupkin" <Vova@mail.ru>';

              т.е. в двойных кавячках можно указать текст. Такой вариант хорош для англ. букв.
              Если надо отправить русские тогда должно быть что-то наподобии:
              ExpandedWrap disabled
                    XXX.From := '=?koi8-r?B?68HS0MXDy8nKIPQu4S4=?= <Vova@mail.ru>'; // "Карпецкий Т.А." <Vova@mail.ru>

              т.е. русские символы (точнее национальные, с кодами >127), должны предваряться тегом:
              =?кодировка?символы=?=
                С английскими все ясно... а вот с русскими если можно обясните как нибудь проще. уВЫ НЕ ПОНЯЛ
                  Цитата nekto550 @
                  т.е. русские символы (точнее национальные, с кодами >127), должны предваряться тегом:
                  =?кодировка?символы=?=


                  Дальше копай в сторону кодировки koi8-r.
                    А что делать если текст смешанный

                    русский + английский
                    украинский + английский или просто
                    чистый польский... ???
                      Смотри другие варианты кодировок, кроме koi8-r.

                      Главное что тебе надо знать - при отправке по SMTP имеется возможность добавить нужные параметры сообщения используя вариант: =?...

                      Их можно добавлять и перед "Subj", и перед "To", и перед текстом самого сообщения...

                      Почитай немного сам про это.

                      Или не умеешь? ;)
                        Пойми..... Я не ленюсь... Просто я не сталкивался ранее с таким...
                        в твоей записи... мне не ясно что такое символы...
                        М Как их надо кодировать чем?
                          Ясно.
                          Лучшая дока - исходный код.
                          Примерно так:

                          ExpandedWrap disabled
                            //=========================================================================
                            // EncodeQuotedPrintable: преобразование строки sText в представление:
                            // =код=код и т.д.
                            // символы с печатными кодами не преобразуются
                            //=========================================================================
                            function EncodeQuotedPrintable(const sText: String): String;
                            var
                              nPos: Integer;
                              s   : string;
                            begin
                               Result := '';
                             
                               for nPos := 1 to Length(sText) do
                               begin
                                  if ( sText[nPos] > #127) or
                                     ( sText[nPos] = '=') or
                                     ( sText[nPos] in [ #00..#32, '"', '_'] ) then
                                  begin
                                     // получить точно две шестнадцатеричные цифры
                                     FmtStr( s, '%2x', [Ord(sText[nPos])] );
                                     s := TrimLeft(s);
                                     if length(s) < 2 then s := '0' + s;
                             
                                     // прибавить в результат
                                     Result := Result + '=' + s;
                                  end else // не требуется преобразование
                                     Result := Result + sText[nPos];
                               end; // for nPos
                            end;
                             
                            //=========================================================================
                            // EncodeLine7Bit: Кодирование строки sText в семибитное представление;
                            // CharSet: строка с названием исходной кидировки символов TextTo;
                            // получаем строку вида:
                            // =?iso-8859-1?x?xxxxxx=?=           в случае преобразования
                            // или саму исходную строку           если выполнять преобразование не требуется;
                            //=========================================================================
                            function EncodeLine7Bit( const sText, Charset: String): String;
                            var
                               Loop: Integer;
                               Encode: Boolean;
                            begin
                               Encode := False;  // признак необходимости выполнить кодирвоку
                             
                               // проверим, есть ли в строке sText
                               for Loop := 1 to Length(sText) do
                                  if (Ord(sText[Loop]) > 127) or (Ord(sText[Loop]) < 32) then
                                  begin // надо выполнить преобразование
                                     Encode := True;
                                     Break;
                                  end;
                             
                               if Encode then
                                  Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText, True)+ '?='
                               else
                                  Result := sText;
                            end;
                             
                            // твоя часть кода для отправки :
                            //
                            var
                               s: string;
                            begin
                               ... в смысле "здесь находится твой рабочий код" ...
                             
                               // формируем строку от "кого" в альтернативной кодировке
                               // вообще для ориентира общепринятые названия кодировок:
                               //   ( 'windows-1251', 'koi8-r', 'iso-8859-1' )
                               //
                               s:= EncodeLine7bit( 'От меня, любимого', 'windows-1251' );
                              
                               // Здесь Mailer: твой почтовый отправитель
                               //
                               Mailer.From := format( '%s <%s>', [ s, 'abc@mail.ru'] );
                             
                               {  в результате в Mailer.From будет сформирована строка вида: =?windows-1251?=... <адрес>,
                                  где троеточие означает, то что сформировано процей Encode7bit;
                               }
                             
                               ... здесь находится твой рабочий код ...
                             
                            end;
                            Такая ошибка [Ошибка] Unit101.pas(202): Too many actual parameters
                            В этой строке Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText, True)+ '?='

                            Как быть?
                              Sorry, my bug. Я просто из рабочего кода выдрал. Один параметр убрал вообще для простоты.
                              Надо так:
                              ExpandedWrap disabled
                                   Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText)+ '?='[CODE=pas]


                              Добавлено
                              В смысле:
                              ExpandedWrap disabled
                                  Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText)+ '?=';
                                Фантастика! Просто мечта! С П А С И Б О
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 2 [3] 4  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0382 ]   [ 15 queries used ]   [ Generated: 6.06.24, 09:40 GMT ]