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