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

Получение адреса из входящего сообщения в MS Outlook

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

Получение адреса из входящего сообщения в MS Outlook

Последняя степень одиночества: даже спаммеры не пишут.


Function GetEAddr(InputMailItem : Variant {mailitem}) : String;
  Var
   MapiFile: TextFile;
   FirstLine, MailAddress : String;
   StrLength, Index : Integer;
  begin
   MailAddress := '';
   // Сохраняем сообщение в текстовом файле... 
   InputMailItem.SaveAs(WideString(ExtractFilePath(Application.EXEName) 
   + 'mailitem.txt'), $00000000);
   
  // Если рассмотреть структуру созданного файла, то в первой строке
  // кроме всего прочего, содержится электронный адрес отправителя.
  // Задача состоит в том, чтобы прочитать его... 
  
   AssignFile(MapiFile, ExtractFilePath(Application.EXEName) + 'mailitem.txt');
   Reset(MapiFile);
   Readln(MapiFile, FirstLine);
   CloseFile(MapiFile);
   If Pos('@', Trim(FirstLine)) >  0 Then
     Begin
      StrLength := Length(Trim(FirstLine));
      Index := StrLength;
      While FirstLine[Index] < >  ' ' Do Dec(Index);
      MailAddress := Copy(FirstLine, Index + 1, StrLength - Index);
      For Index := 1 To Length(Trim(MailAddress)) Do
         If (MailAddress[Index] = '[') Or (MailAddress[Index] = ']') 
   Then MailAddress[Index] := ' ';
      MailAddress := Trim(MailAddress);
     End
   Else
    MailAddress := Trim(InputMailItem.SenderName);
   Result := MailAddress;
  // В том случае, если адрес все же не определен, возвращаем известный нам 
  SenderName...    
end;

Перевод контента на русский язык:

Функция Delphi под названием GetEAddr принимает в качестве входного параметра объект электронной почты MS Outlook и возвращает адрес электронной почты отправителя. Вот подробное описание того, что код делает:

  1. Функция сохраняет входящий объект электронной почты в текстовом файле с именем mailitem.txt в том же каталоге, где находится исполняемый файл.
  2. Затем она читает первую строку текстового файла, которая содержит информацию о адресе электронной почты отправителя.
  3. Если первая строка содержит символ @, функция извлекает адрес электронной почты из этой строки с помощью различных функций обработки строк (например, Pos, Trim, Copy, Length).
  4. Если адрес электронной почты не найден в первой строке, функция переходит к использованию свойства SenderName входящего объекта электронной почты.
  5. Функция возвращает извлеченный или альтернативный адрес электронной почты в виде строки.

Некоторые предложения по улучшению:

  • Вместо сохранения всего объекта электронной почты в файл и последующего чтения, можно напрямую прочитать адрес электронной почты отправителя из объекта InputMailItem с помощью его свойств (например, SenderEmailAddress, SenderName).
  • Код предполагает, что первая строка текстового файла содержит адрес электронной почты в конкретном формате. Если это предположение не всегда верно, может быть лучше извлечь адрес электронной почты из всего содержимого объекта электронной почты вместо зависимости от первой строки.
  • Можно добавить механизмы обработки ошибок и журналирования для обработки потенциальных проблем при чтении или записи файлов, таких как ошибка не найденного файла или запрещенная операция.

Вот альтернативное реализацию, которая читает адрес электронной почты отправителя напрямую из объекта InputMailItem:

Function GetEAddr(InputMailItem: Variant): String;
begin
  Result := InputMailItem.SenderEmailAddress;
end;

Эта реализация проще и более эффективна, так как она избегает сохранения и чтения файлов. Однако, если вам нужно извлечь другие сведения из объекта электронной почты, оригинальный код может все еще быть полезен.

В статье описывается способ программированного получения электронного адреса отправителя из входящего сообщения в MS Outlook с помощью языка программирования Delphi.


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

Получайте свежие новости и обновления по 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:01:29/0.0036780834197998/0