was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

37 Visitors Online


 
...die Adresse eines Sender für ein MailItem (MS Outlook) ermitteln?
Autor: Mike Shkolnik
Homepage: http://www.scalabium.com
[ Tip ausdrucken ]  

Tip Bewertung (9):  
     


{
  If you tried to work with messages from Delphi, you know that received message have the
  SenderName property (name of sender) but doesn't allow to read the real address of sender.
  Something like SenderAddress is not available.

  There exist a few methods to retrieve this information:

  1. help file says that sender is in Recipients collection
  with Type property - 0 (olOriginator).
  But this way does work for any version of MS Outlook.
  So just iterate thru collection of Recipients and find an item with Type=0
  couldn't return required value

  2. as alternative you can read a ReplyTo property - there you'll receive an address
  (but generally ReplyTo and Sender could be different).
  For example, in messages which I send from own mail account these values are different.

  3. to create a new MailItem (just will be destroyed without saving in end of work),
  define a Recipient as value which you received from SenderName of your original
  message and call a Resolve method - after that you'll recieve a correct email address of this sender.

  4. more correct and fast solution is the next:
}

var
 
s: string;
 objCDO: OLEVariant;
begin
  
objCDO := CreateOLEObject('MAPI.Session');
  objCDO.Logon('', '', False, False);
  objMsg := objCDO.GetMessage(itemOL.EntryID, itemOL.Parent.StoreID);

  s := objMsg.Sender.Address;
  ShowMessage(s);
  objMsg := Unassigned;
  objCDO := Unassigned;
end


{ where itemOL is a MailItem which contain a SenderName but doesn't contain a SenderAddress }


 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners