Получение адреса из входящего сообщения в 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 ThenBegin
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)) DoIf (MailAddress[Index] = '[') Or (MailAddress[Index] = ']')
Then MailAddress[Index] := ' ';
MailAddress := Trim(MailAddress);
EndElse
MailAddress := Trim(InputMailItem.SenderName);
Result := MailAddress;
// В том случае, если адрес все же не определен, возвращаем известный нам
SenderName...
end;
Статья Получение адреса из входящего сообщения в MS Outlook раздела Интернет и Сети E-mail может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.