Автор Тема: Библиотеки Openssl для AltLinux  (Прочитано 315 раз)

Оффлайн san7667

  • Начинающий
  • *
  • Сообщений: 13
Библиотеки Openssl для AltLinux
« : 22.07.2023 11:01:21 »
Добрый день, стоит задача разработать не больше приложение "техническая поддержка"
на lazarus+indy10
Все хорошо отправляет, но есть нюанс, не кушает кириллицу в разделе idimage.subject
Перебрал уже все возможные варианты, лазил на форум программистов, все бестолку, осталось грешить на библиотеки
Подскажите пожалуйста, где мне найти актуальные библиотеки openssl для altlinux, индересуют 2 файла libcrypto.so и libssl.so
Скачал с ресурса : wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gzположил в папку с проектом 2 файла расширения *.so : libcrypto.so и libssl.soс латиницей никаких проблем нет, на винде тот же проект отправляет письмо корректно.


рабочий код скинули у кого линуксятина стоит, но он так же не видит кириллицу в темке письма
IdMessage1 : TIdMessage;
    IdSMTP1 : TIdSMTP;
    IdSSLIOHandlerSocketOpenSSL1 : TIdSSLIOHandlerSocketOpenSSL;
...
var
  subj, body :RawByteString;

// только для windows-1251
      subj := UTF8ToCP1251('тема письма', true);
       body := UTF8ToCP1251('текст', true);
       IdMessage1.From.Address := ****;
       IdMessage1.Recipients.EMailAddresses := ****;
       IdMessage1.Subject := subj;
       IdMessage1.Body.Text := body;
       IdMessage1.CharSet := 'windows-1251';
       IdMessage1.ContentTransferEncoding := 'base64';
       IdMessage1.ContentType := 'text/plain'+'; charset='+IdMessage1.CharSet;
       IdMessage1.Date := Now();

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 165
Re: Библиотеки Openssl для AltLinux
« Ответ #1 : 22.07.2023 14:27:54 »
В полях From: To: Subj: при использовании нелатиницы тоже используется base64-кодирование с указанием кодировки.
Например строка Subj из реального письма:
Subject: =?utf-8?b?0KDQsNGB0L/RgNC+0LTQsNC20LAg0LzQvtGJ0L3Ri9GFIFdpLUZpINGA0L7Rg9GC0LXRgNC+0LIuINCa0L7Qu9C40YfQtdGB0YLQstC+INC+0LPRgNCw0L3QuNGH0LXQvdC+Lg==?=
И кстати, зачем перекодируете из utf-8 в cp1251 ? Просто указывайте кодировку тела письма utf-8, как и в полях заголовка письма.

ЗЫ. В Thunderbird очень удобная комбинация клавиш - Ctrl+U - посмотреть исходник письма

Оффлайн san7667

  • Начинающий
  • *
  • Сообщений: 13
Re: Библиотеки Openssl для AltLinux
« Ответ #2 : 22.07.2023 16:31:27 »
И кстати, зачем перекодируете из utf-8 в cp1251 ? Просто указывайте кодировку тела письма utf-8, как и в полях заголовка письма.

Я ставил кодировку:
idmessage1.charset='UTF-8';
idmessage1.charset='тема письма';

так же безрезультатно, приходит письмо <без темы>

Оффлайн san7667

  • Начинающий
  • *
  • Сообщений: 13
Re: Библиотеки Openssl для AltLinux
« Ответ #3 : 22.07.2023 16:49:20 »
И кстати, зачем перекодируете из utf-8 в cp1251 ? Просто указывайте кодировку тела письма utf-8, как и в полях заголовка письма.

Если UTF-8 то выводится только тело письма, все остальное не определяется ни тема ни заголовок
Попробовал: IdMessage1.Subject := UTF8ToKOI8RU('ТЕКСТ');  отображаются в теме письма знаки ?

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 165
Re: Библиотеки Openssl для AltLinux
« Ответ #4 : 23.07.2023 12:58:13 »
Для полей заголовка письма особый формат - там явно указана кодировка.
Вот нагугленный текст на php (поправьте под себя)
$subject = "=?utf-8?B?" . base64_encode($subject) . "?=";

Оффлайн san7667

  • Начинающий
  • *
  • Сообщений: 13
Re: Библиотеки Openssl для AltLinux
« Ответ #5 : 24.07.2023 17:03:41 »
Как пхп поправить под паскаль)))))))))))))))))))
IdMessage1.Subject := '=?utf-8?B?'+'ТЕСТ'+'?=';   - что попало получается))

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 165
Re: Библиотеки Openssl для AltLinux
« Ответ #6 : 24.07.2023 19:05:38 »
Как пхп поправить под паскаль)))))))))))))))))))
IdMessage1.Subject := '=?utf-8?B?'+'ТЕСТ'+'?=';   - что попало получается))
Не напрямую строку 'ТЕСТ', а результат её кодирования в base64 - возможно уже есть готовая функция, вам виднее.