Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как можно перекодировать сообщение (содержание) из Win в КОИ8-Р для отправки по EMail

Delphi , Интернет и Сети , E-mail

Как можно перекодировать сообщение (содержание) из Win в КОИ8-Р для отправки по EMail


Разговаривают две фидошницы:
- Знаешь, мы с одним парнем сексом по переписке занимаемся!
- ?! Ну, и как? Оргазм когда-нибудь получаешь?
- Ага... Когда не получаю его дурацких писем.


const

Koi: array[0..66] of Char = (
'T', 'Ё', 'ё', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж',
'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р',
'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ',
'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д',
'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о',
'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш',
'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');

Win: array[0..66] of Char = (
'ё', 'Ё', 'T', 'ю', 'а', 'б', 'ц', 'д', 'е', 'ф',
'г', 'х', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п',
'я', 'р', 'с', 'т', 'у', 'ж', 'в', 'ь', 'ы', 'з',
'ш', 'э', 'щ', 'ч', 'ъ', 'Ю', 'А', 'Б', 'Ц', 'Д',
'Е', 'Ф', 'Г', 'Х', 'И', 'Й', 'К', 'Л', 'М', 'Н',
'О', 'П', 'Я', 'Р', 'С', 'Т', 'У', 'Ж', 'В', 'Ь',
'Ы', 'З', 'Ш', 'Э', 'Щ', 'Ч', 'Ъ');


function WinToKoi(Str: string): string;
var
  i, j, index: Integer;
begin
  Result := '';

  for i := 1 to Length(Str) do
  begin
    index := -1;
    for j := Low(Win) to High(Win) do
      if Win[j] = Str[i] then
      begin
        index := j;
        Break;
      end;

    if index = -1 then
      Result := Result + Str[i]
    else
      Result := Result + Koi[index];
  end;
end;

function KoiToWin(Str: string): string;
var
  i, j, index: Integer;
begin
  Result := '';

  for i := 1 to Length(Str) do
  begin
    index := -1;
    for j := Low(Win) to High(Win) do
      if Koi[j] = Str[i] then
      begin
        index := j;
        Break;
      end;

    if index = -1 then
      Result := Result + Str[i]
    else
      Result := Result + Win[index];
  end;
end;


procedure SendFileOnSMTP(Host: string; Port: Integer;
Subject, FromAddress, ToAddress, Body, FileName: string);
var
  NMSMTP: TNMSMTP;
begin
  if DelSpace(ToAddress) = '' then
    Exit;
  if ToAddress[1] = '' then
    Exit;

  if (DelSpace(FileName) <> '') and not FileExists(FileName) then
    raise Exception.Create('SendFileOnSMTP: file not exist: ' + FileName);

  NMSMTP := TNMSMTP.Create(nil);
  try
    NMSMTP.Host := Host;
    NMSMTP.Port := Port;
    NMSMTP.Charset := 'koi8-r'
    NMSMTP.PostMessage.FromAddress := FromAddress;
    NMSMTP.PostMessage.ToAddress.Text := ToAddress;
    NMSMTP.PostMessage.Attachments.Text := FileName;
    NMSMTP.PostMessage.Subject := Subject;
    NMSMTP.PostMessage.Date := DateTimeToStr(Now);
    NMSMTP.UserID := 'netmaster'
    NMSMTP.PostMessage.Body.Text := WinToKoi(Body);
    NMSMTP.FinalHeader.Clear;
    NMSMTP.TimeOut := 5000;
    NMSMTP.Connect;
    NMSMTP.SendMail;
    NMSMTP.Disconnect;
  finally
    NMSMTP.Free;
  end;
end;

Программа SendEmail.

{$APPTYPE CONSOLE}

uses NMSMTP;

const Koi: array[0..66] of Char = ( 'T', 'Ё', 'ё', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');

var Body: string = 'Разговаривают две фидошницы:';

begin Body := WinToKoi(Body); SendFileOnSMTP('smtp.yandex.ru', 587, 'Subject', 'from@example.com', 'to@example.com', Body, ''); end.

В этом примере функция WinToKoi используется для конвертации сообщения из кодировки Windows-1251 в Koi8-R. Конвертированное сообщение затем отправляется по протоколу SMTP с помощью процедуры SendFileOnSMTP.

Обратите внимание: замените 'smtp.yandex.ru', 587, 'from@example.com', 'to@example.com' и любые другие параметры электронной почты на свои актуальные значения.

Как можно перекодировать сообщение (содержание) из Win в КОИ8-Р для отправки по EMail.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: E-mail ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 20:02:17/0.0035820007324219/0