скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Получение адреса из входящего сообщения в 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;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook