Доброго всем времени суток господа. Прошу не пинать если тема заезжена до дыр, но всё же))))) Ситуация следующая. Имеется система Debian 4.0, постфикс управляемый через вэб-сайт который имеет кодировку KOI8. База постгреса с которой работают postfix и апач2 лежит тоже в KOI8. По сему у меня вопрос к знающим людям , как мне научить постфикс читать данные из базы в кодировке KOI8? Скажу сразу, что перезаливать базу в кодировке UNICODE, заниматься перекодированием хтмл страниц из koi8 в utf8, и правкой хэдеров в хтмл это я пробовал ..... непомогло...... может кто нить что сказать по этому поводу? Буду очень признателен за помошь.
>...как мне научить постфикс читать
>данные из базы в кодировке KOI8?...postfix это тот который SMTP server?
А зачем ему читать какие-то базы данных? (не важно в какой кодировке)
>>...как мне научить постфикс читать
>>данные из базы в кодировке KOI8?...
>
>postfix это тот который SMTP server?
>А зачем ему читать какие-то базы данных? (не важно в какой кодировке)
>ну допустим данные в БД хранить можно -- но где постфикс может использовать данные с не латинскими символами представить не могу (ну разве-что Canonical address mapping )
>>>...как мне научить постфикс читать
>>>данные из базы в кодировке KOI8?...
>>
>>postfix это тот который SMTP server?
>>А зачем ему читать какие-то базы данных? (не важно в какой кодировке)
>>
>
>ну допустим данные в БД хранить можно -- но где постфикс может
>использовать данные с не латинскими символами представить не могу (ну разве-что
>Canonical address mapping )А вот где)))) Если хранишь базу для постфикса в KOI8 то он тебе вот такие мессаги в логах фиксит 2008-08-26 07:37:49 ERROR: conversion between LATIN1 and KOI8 is not supported
..... Тока базу в UTF перельёшь как сразу всё ок. А мне позарез надо чтобы Koi8, так как сайт исходниками лежит в KOI8 и переписывать контент мазы нет.. с ума сойду.))))
>[оверквотинг удален]
>>ну допустим данные в БД хранить можно -- но где постфикс может
>>использовать данные с не латинскими символами представить не могу (ну разве-что
>>Canonical address mapping )
>
>А вот где)))) Если хранишь базу для постфикса в KOI8 то он
>тебе вот такие мессаги в логах фиксит 2008-08-26 07:37:49 ERROR:
>conversion between LATIN1 and KOI8 is not supported
>..... Тока базу в UTF перельёшь как сразу всё ок. А мне
>позарез надо чтобы Koi8, так как сайт исходниками лежит в KOI8
>и переписывать контент мазы нет.. с ума сойду.))))сделай view -- а в нём http://www.postgresql.org/docs/8.3/static/functions-string.html на предмет convert_to
Патч для веток 2.4 и 2.5
(Вырезает из кода проверку на кодировку)# cat mail/postfix/files/patch-src::global::dict_pgsql.c
*** dict_pgsql.c.orig 2007-01-05 06:07:59.000000000 +1000
--- dict_pgsql.c 2008-08-28 12:15:13.000000000 +1100
***************
*** 643,648 ****
--- 643,649 ----
* database server should not accept multi-byte information after
* this point.
*/
+ /*
if (PQsetClientEncoding(host->db, "LATIN1") != 0) {
msg_warn("dict_pgsql: cannot set the encoding to LATIN1, skipping %s",
host->hostname);
***************
*** 650,655 ****
--- 651,657 ----
return;
}+ */
/* Success. */
host->stat = STATACTIVE;
}
>[оверквотинг удален]
>***************
>*** 650,655 ****
>--- 651,657 ----
> return;
> }
>
>+ */
> /* Success. */
> host->stat = STATACTIVE;
> }Господа а можно по подробнее?
>[оверквотинг удален]
>***************
>*** 650,655 ****
>--- 651,657 ----
> return;
> }
>
>+ */
> /* Success. */
> host->stat = STATACTIVE;
> }Ну да неспорю. но у меня Linux slp 2.6.18-6-686 #1 SMP Tue Jun 17 21:31:27 UTC 2008 i686 GNU/Linux
>[оверквотинг удален]
>>>Canonical address mapping )
>>
>>А вот где)))) Если хранишь базу для постфикса в KOI8 то он
>>тебе вот такие мессаги в логах фиксит 2008-08-26 07:37:49 ERROR:
>>conversion between LATIN1 and KOI8 is not supported
>>..... Тока базу в UTF перельёшь как сразу всё ок. А мне
>>позарез надо чтобы Koi8, так как сайт исходниками лежит в KOI8
>>и переписывать контент мазы нет.. с ума сойду.))))
>
>сделай view -- а в нём http://www.postgresql.org/docs/8.3/static/functions-string.html на предмет convert_toА вас не затруднит поподробнее рассказать?
>[оверквотинг удален]
>>>А вот где)))) Если хранишь базу для постфикса в KOI8 то он
>>>тебе вот такие мессаги в логах фиксит 2008-08-26 07:37:49 ERROR:
>>>conversion between LATIN1 and KOI8 is not supported
>>>..... Тока базу в UTF перельёшь как сразу всё ок. А мне
>>>позарез надо чтобы Koi8, так как сайт исходниками лежит в KOI8
>>>и переписывать контент мазы нет.. с ума сойду.))))
>>
>>сделай view -- а в нём http://www.postgresql.org/docs/8.3/static/functions-string.html на предмет convert_to
>
>А вас не затруднит поподробнее рассказать?давай конфиг postix'а -- какие ты там таблицы юзаеш и какими запросами данные получаеш
Вот конфига постфикса, файлы коннекта к базе.
main.cf
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix
setgid_group = postdrop
biff = no
default_privs = nobody
myhostname = mail.cik.ru
mydomain = cik.ru
smtpd_banner = $myhostname ESMTP $mail_name
mynetworks_style = host
append_dot_mydomain = yes
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
#myorigin = /etc/mailname
mydestination = cik, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8, 10.0.10.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
readme_directory = no
sample_directory = /etc/mail/sample
sendmail_path = /usr/sbin/sendmail
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
# reject_unknown_sender_domain,
reject_unknown_recipient_domain,
# reject_non_fqdn_hostname,
# reject_non_fqdn_sender,
reject_non_fqdn_recipient,
# reject_invalid_hostname,
reject_rbl_client cn-kr.blackholes.us,
reject_rbl_client relays.ordb.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client combined.njabl.org,
reject_rbl_client dnsbl.njabl.org,
reject_unauth_destination
local_transport = virtual
local_recipient_maps = $virtual_mailbox_maps
disable_vrfy_command = yes
virtual_mailbox_domains = pgsql:/etc/postfix/virtual_domains
virtual_mailbox_base = /
#virtual_uid_maps = pgsql:/etc/postfix/ids.cf
virtual_uid_maps = static:105
#virtual_gid_maps = pgsql:/etc/postfix/gids.cf
virtual_gid_maps = static:106
virtual_mailbox_maps = pgsql:/etc/postfix/aliases
message_size_limit=0
virtual_mailbox_limit=0
html_directory = no
#################content_filter = smtp:localhost:2526"aliases.cf"
user = cik
password = cik
dbname = cik
table = aliases
select_field = maildir
where_field = alias
hosts = pgsql"virtual_domains"
user = cik
password = cik
dbname = cik
table = transport
select_field = domain
where_field = domain
hosts = pgsql
Мдяя.... может у кого ещё есть какие нибудь соображения?
>Мдяя.... может у кого ещё есть какие нибудь соображения?Ну вам же _HK_ показал патч. Пропатчите исходники вашего postfix, перекомпилируйте, установите и пользуйтесь на здоровье.
Итак. С патчем исходников postfix'а всё понятно. Непонятно как на каждую таблицу перекодирущий вью вешать?
>Итак. С патчем исходников postfix'а всё понятно. Непонятно как на каждую таблицу
>перекодирущий вью вешать?у postgresql исчерпывающая документация -- за вас думать увольте
>>Итак. С патчем исходников postfix'а всё понятно. Непонятно как на каждую таблицу
>>перекодирущий вью вешать?
>
>у postgresql исчерпывающая документация -- за вас думать увольтеА зачем тогда просить скидывать конфиги!!? непонимаю..... Если просто хочетца побаянить и побольше постов набить то тогда понятно...... вам место в курилке!!!!! Большое спасибо за помощь.
Люди !!! Подскажите как перекодирующий вью на таблицу приклеить.
Тема с вешаньем перекодирующих функций на таблицы непрокатывает.Посидев немного начал искать патч.
postfix-2.3-20060604-dict_pgsql-666.patchВроде всё делаю правильно. Качаю http://www.itprofy.org/postfix-release/official/postfix-2.5.... , распаковываю, и кидаю в распакованный каталог postfix-2.3-20060604-dict_pgsql-666.patch. Немножко правлю файлик. Везде где стоит postfix-2.3-20060604-dict_pgsql-666 я переправляю на postfix-2.5.4. Спускаюсь в каталог с исходниками и
us@slp:~/postfix-2.5.4$patch -p1 < postfix-2.3-20060604-dict_pgsql-666.patch
(Stripping trailing CRs from patch.)
patching file src/global/dict_pgsql.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Hunk #2 FAILED at 226.
Hunk #3 FAILED at 237.
Hunk #4 FAILED at 368.
Hunk #5 FAILED at 515.
Hunk #6 FAILED at 623.
Hunk #7 succeeded at 819 (offset 137 lines).
Hunk #8 succeeded at 899 with fuzz 1 (offset 137 lines).
Hunk #9 succeeded at 962 (offset 137 lines).
5 out of 9 hunks FAILED -- saving rejects to file src/global/dict_pgsql.c.rejВ чем затырка?
>[оверквотинг удален]
>Hunk #4 FAILED at 368.
>Hunk #5 FAILED at 515.
>Hunk #6 FAILED at 623.
>Hunk #7 succeeded at 819 (offset 137 lines).
>Hunk #8 succeeded at 899 with fuzz 1 (offset 137 lines).
>Hunk #9 succeeded at 962 (offset 137 lines).
>5 out of 9 hunks FAILED -- saving rejects to file src/global/dict_pgsql.c.rej
>
>
>В чем затырка?Патч для версии 2.3, а вы ставите версию 2.5. Думаю из-за этого
Просто для 2.5 нет такого патча.