AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Benutzer-Mailadresse aus Netscape- bz. Opera-Mail
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

Ein Thema von FriFra · begonnen am 2. Okt 2003 · letzter Beitrag vom 2. Okt 2003
Antwort Antwort
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 08:12
Das Lesen der Benutzer-Mail (nicht Adressbuch!) aus Outlook ist bereits fertig
http://www.delphipraxis.net/internal...?p=77276#77276

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.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 08:43
Opera 7.20: contacts.adr
Code:
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

-
Die Datei liegt im Installationsverzeichnis. Keine Ahnung ob das immer so ist ...

Ich würde allerdings an Deiner Stelle einfach mal die Browser installieren. Dann hast Du etwas zum Testen.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 08:49
#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)?
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 08:58
Die Frage habe ich jetzt auch mal gelesen.

[Dokumente und Einstellungen] accounts.ini:

Code:
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

...
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.

Bei Bedarf: Schick mir eben Deine E-Mail per PM, ich schicke Dir dann die ganze Datei.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 10:15
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 10:46
Also Opera ist gelöst ... 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;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Benutzer-Mailadresse aus Netscape- bz. Opera-Mail

  Alt 2. Okt 2003, 12:21
Für den Netscape Communicator habe ich auch schon eine Lösung... Mir fehlt jetzt effektiv nur von für Netscape 6 und 7...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz