Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.62.34] |
|
Страницы: (4) 1 2 [3] 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Скажите а что это за параметры? Для чего они могу быть?
IpSmtpClient1.IdleTimeout IpSmtpClient1.IdleTime IpSmtpClient1.TimerInterval все тип cardinal |
Сообщ.
#32
,
|
|
|
Тебе надо найти помощь по твоему компоненту IpSmtpClient.
По названиям можно судить только вот что: IpSmtpClient1.IdleTimeout тайм-аут холостого выполнения IpSmtpClient1.IdleTime время холостого выполнения (непонятно чем реально отличается от IdleTimeOut) IpSmtpClient1.TimerInterval интервал для таймера (а вот какого неизвестно) все тип cardinal P.S. Самая лучшая дока - исходники компонента. |
Сообщ.
#33
,
|
|
|
Не подскажете как обработать неудачную отправку? То есть какое свойство отвечает за НЕОТПРАВЛЕННЫЙ ЕМЭЙЛ. Все свойства компонента на картинке на несколько сообщений выше.
|
Сообщ.
#34
,
|
|
|
Посмотри такие события :
OnError OnConnectError OnErrorReply OnNextMessage Установи их обработчики и прожурналируй (или еще как нибудь), что они получают/возвращают и когда вызываются. |
Сообщ.
#35
,
|
|
|
Если не трудно то подскажите как можно поставить вместо емэйла в поле аутлука ОТ "От Васи Пупкина"
То есть чтобы письмо вошедшее на компьютер получателя имело вид ОТ "От Васи Пупкина" ну а уж под ним емэйл. Кажется объяснил не очень понятно. Как может называться данный параметр? |
Сообщ.
#36
,
|
|
|
Попробуй параметр "From" задать в виде:
XXX.From := '"From Vasia pupkin" <Vova@mail.ru>'; т.е. в двойных кавячках можно указать текст. Такой вариант хорош для англ. букв. Если надо отправить русские тогда должно быть что-то наподобии: XXX.From := '=?koi8-r?B?68HS0MXDy8nKIPQu4S4=?= <Vova@mail.ru>'; // "Карпецкий Т.А." <Vova@mail.ru> т.е. русские символы (точнее национальные, с кодами >127), должны предваряться тегом: =?кодировка?символы=?= |
Сообщ.
#37
,
|
|
|
С английскими все ясно... а вот с русскими если можно обясните как нибудь проще. уВЫ НЕ ПОНЯЛ
|
Сообщ.
#38
,
|
|
|
Цитата nekto550 @ т.е. русские символы (точнее национальные, с кодами >127), должны предваряться тегом: =?кодировка?символы=?= Дальше копай в сторону кодировки koi8-r. |
Сообщ.
#39
,
|
|
|
А что делать если текст смешанный
русский + английский украинский + английский или просто чистый польский... ??? |
Сообщ.
#40
,
|
|
|
Смотри другие варианты кодировок, кроме koi8-r.
Главное что тебе надо знать - при отправке по SMTP имеется возможность добавить нужные параметры сообщения используя вариант: =?... Их можно добавлять и перед "Subj", и перед "To", и перед текстом самого сообщения... Почитай немного сам про это. Или не умеешь? |
Сообщ.
#41
,
|
|
|
Пойми..... Я не ленюсь... Просто я не сталкивался ранее с таким...
в твоей записи... мне не ясно что такое символы... М Как их надо кодировать чем? |
Сообщ.
#42
,
|
|
|
Ясно.
Лучшая дока - исходный код. Примерно так: //========================================================================= // 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; |
Сообщ.
#43
,
|
|
|
Такая ошибка [Ошибка] Unit101.pas(202): Too many actual parameters
В этой строке Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText, True)+ '?=' Как быть? |
Сообщ.
#44
,
|
|
|
Sorry, my bug. Я просто из рабочего кода выдрал. Один параметр убрал вообще для простоты.
Надо так: Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText)+ '?='[CODE=pas] Добавлено В смысле: Result := '=?'+ Charset+ '?Q?'+ EncodeQuotedPrintable(sText)+ '?='; |
Сообщ.
#45
,
|
|
|
Фантастика! Просто мечта! С П А С И Б О
|