![]() |
Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Das Lesen der Benutzer-Mail (nicht Adressbuch!) aus Outlook ist bereits fertig ;)
![]() Allerdings hätte ich noch gern gewusst, wo Netscape und Opera diese Daten speichern. Falls jemand von euch den Mailclient eines dieser Browser verwendet, wäre es schön, wenn ich diese Infos haben könnte. |
Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Opera 7.20: contacts.adr
Code:
Die Datei liegt im Installationsverzeichnis. Keine Ahnung ob das immer so ist ...
Opera Hotlist version 2.0
Options: encoding = utf8, version=3 #CONTACT ID=179 NAME=Tom CREATED=1065080907 ACTIVE=YES MAIL=Tom@MirEgal.de ICON=Contact0 #FOLDER ID=148 NAME=Papierkorb CREATED=1050224019 TRASH FOLDER=YES - Ich würde allerdings an Deiner Stelle einfach mal die Browser installieren. Dann hast Du etwas zum Testen. |
Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
#Contact lässt für mich darauf schliessen, dass es sich um einen Kontakt handelt. Ich suche aber die Adresse des Benutzers, nicht Adressen aus dem Adressbuch. Oder handelt es sich tatsächlich um die Mailadresse des Benutzers (da vermisse ich aber z.B. den SMTP-Server)?
|
Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Die Frage habe ich jetzt auch mal gelesen.
[Dokumente und Einstellungen] accounts.ini:
Code:
Was es mit Account3 auf sich hat: *achselzuck*, es gibt da mehrere. Als EMail habe ich - nur für Dich - tatsächlich "MirEgal.de" angegeben.
Opera Preferences version 2.0
; Do not edit this file while Opera is running ; This file is stored in UTF-8 encoding ... [Account3] Real Name=Tom Email=Miregal.de ... Bei Bedarf: Schick mir eben Deine E-Mail per PM, ich schicke Dir dann die ganze Datei. |
Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Moin FriFra,
wenn's um Opera geht, müsstest Du auch auf deren HP einiges finden. Dort sind z.B. auch die gesamten programmeigenen Dateiformate dokumentiert. |
Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Also Opera ist gelöst :-D ... jetzt fehlt noch Netscape!
Es kann ja mal ein Opera-Mail User den folgendenn Code Testen:
Delphi-Quellcode:
function GetOperaMail(DisplayName: boolean): string;
function GetOperaDir: string; var RDI: TRegistry; Suf: string; n: integer; begin RDI := TRegistry.Create; try RDI.RootKey := HKEY_CURRENT_USER; RDI.OpenKey('SOFTWARE\Opera Software', False); for n := -1 to 10 do begin if n = -1 then Suf := '' else Suf := IntToStr(n); if RDI.ValueExists('Last Directory' + Suf) then begin Result := RDI.ReadString('Last Directory' + Suf); if copy(Result, Length(Result), 1) <> '\' then Result := Result + '\'; end; end; finally RDI.Free; end; end; function GetAppdataDir: string; var shellMalloc: IMalloc; ppidl: PItemIdList; begin ppidl := nil; try if SHGetMalloc(shellMalloc) = NOERROR then begin SHGetSpecialFolderLocation(Self.Handle, CSIDL_APPDATA, ppidl); SetLength(Result, MAX_PATH); if not SHGetPathFromIDList(ppidl, PChar(Result)) then raise exception.create('SHGetPathFromIDList failed : invalid pidl'); SetLength(Result, lStrLen(PChar(Result))); end; finally if ppidl <> nil then shellMalloc.free(ppidl); end; if copy(Result, Length(Result), 1) <> '\' then Result := Result + '\'; end; function GetAccountsINI(Path: string): string; var search: TSearchRec; directory, Tmp: string; begin Result := ''; directory := ExtractFilePath(Path); // find all files if (pos('opera', LowerCase(Path)) > 0) then if (FileExists(Path) = True) then Result := Result + ';' + Path; // Subdirectories/ Unterverzeichnisse if FindFirst(directory + '*.*', faDirectory, search) = 0 then begin repeat if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') and ((pos('opera', LowerCase(search.Name)) > 0) or (pos('opera', LowerCase(directory)) > 0)) then begin Tmp := GetAccountsINI(directory + search.Name + '\' + ExtractFileName(Path)); if Tmp <> '' then Result := Result + ';' + Tmp; end; until FindNext(search) <> 0; FindClose(search); end; if copy(Result, 1, 1) = ';' then Result := copy(Result, 2, Length(Result)); end; var INI: TIniFile; AccountIni: string; AccountsIni: string; Accounts: TStringList; n: integer; begin Result := ''; //alte Versionen AccountIni := GetAccountsINI(GetOperaDir + 'account.ini') + ';'; while (pos(';', AccountIni) > 1) do begin INI := TIniFile.Create(copy(AccountIni, 1, pos(';', AccountIni) - 1)); AccountIni := copy(AccountIni, pos(';', AccountIni) + 1, Length(AccountIni)); try if INI.ReadString('SETTINGS', 'EmailAddress', '') <> '' then begin if (DisplayName = True) and (INI.ReadString('SETTINGS', 'FullName', '') <> '') then Result := Result + ', ' + INI.ReadString('SETTINGS', 'FullName', '') + ' <' + INI.ReadString('SETTINGS', 'EmailAddress', '') + '>' else Result := Result + ', ' + INI.ReadString('SETTINGS', 'EmailAddress', ''); end; finally INI.Free; end; end; //aktuelle Versionen AccountsIni := GetAccountsINI(GetAppdataDir + 'accounts.ini') + ';'; while (pos(';', AccountsIni) > 1) do begin INI := TIniFile.Create(copy(AccountsIni, 1, pos(';', AccountsIni) - 1)); AccountsIni := copy(AccountsIni, pos(';', AccountsIni) + 1, Length(AccountsIni)); Accounts := TStringList.Create; INI.ReadSections(Accounts); try for n := 0 to Accounts.Count - 1 do begin if (pos('account', LowerCase(Accounts[n])) = 1) and (LowerCase(Accounts[n]) <> 'accounts') then begin if INI.ReadString(Accounts[n], 'Email', '') <> '' then begin if (DisplayName = True) and (INI.ReadString(Accounts[n], 'Real Name', '') <> '') then Result := Result + ', ' + INI.ReadString(Accounts[n], 'Real Name', '') + ' <' + INI.ReadString(Accounts[n], 'Email', '') + '>' else Result := Result + ', ' + INI.ReadString(Accounts[n], 'Email', ''); end; end; end; finally INI.Free; Accounts.Free; end; end; if Length(Result) > 0 then Result := Trim(copy(Result, 3, Length(Result))); end; |
Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Für den Netscape Communicator habe ich auch schon eine Lösung... Mir fehlt jetzt effektiv nur von für Netscape 6 und 7...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz