БОЛЬШОЙ FAQ ПО DELPHI



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




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ