Подскажите, как раскодировать заголовки писем

Модератор: Модераторы разделов

Skala
Сообщения: 241
ОС: Gentoo

Подскажите, как раскодировать заголовки писем

Сообщение Skala »

Пишу небольшую программу, обрабатывающую заголовки писем на сервере. Через сокет захожу на сервер, беру заголовки, шурую их, получаю From и Subject (что, собственно и надо мне).
Как раскодировать такие заголовки:
Subject: =?koi8-r?Q?=52e:=20=D3=C5=D4=C5=D7=CF=CA=20=CD=CF=D3=D4=20=D7=20?=
=?koi8-r?Q?linux?=
?

А вообще, думаю, что руками искать сабжи и отправителей это изобретение велосипеда. Не подскажете библиотеку, помогающую в таких делах?
Спасибо за внимание.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Подскажите, как раскодировать заголовки писем

Сообщение sash-kan »

можно так

$ cat $(which decode) #!/usr/bin/perl -C use Encode qw/encode decode/; print decode("MIME-Header", "@ARGV"), "\n" $ decode 'Subject: =?koi8-r?Q?=52e:=20=D3=C5=D4=C5=D7=CF=CA=20=CD=CF=D3=D4=20=D7=20?==?koi8-r?Q?linux?=' Subject: Re: сетевой мост в linux
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Skala
Сообщения: 241
ОС: Gentoo

Re: Подскажите, как раскодировать заголовки писем

Сообщение Skala »

sash-kan писал(а):
14.05.2007 21:41

можно так

$ cat $(which decode) #!/usr/bin/perl -C use Encode qw/encode decode/; print decode("MIME-Header", "@ARGV"), "\n" $ decode 'Subject: =?koi8-r?Q?=52e:=20=D3=C5=D4=C5=D7=CF=CA=20=CD=CF=D3=D4=20=D7=20?==?koi8-r?Q?linux?=' Subject: Re: сетевой мост в linux
А на C/C++ ничего нет похожего?
Спасибо за внимание.
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Подскажите, как раскодировать заголовки писем

Сообщение TwisT »

libvmime тебе в помощь, есть все что касается почтовых сообщений,
очень просто пользоватся, поддерживает атачи, кучу кодировок
там кстати метод есть vmime::charset::convert()
он перекодирует строку в нужную тебе кодировку, сам ней пользуюсь
еще можно на ихнем форуме посмотреть, там таваришь писал программку
которая проверяет наличине новых писем, удачи!!!
Linux user #432536.
Спасибо сказали: