You are here:   Blogs
  
ápr. 28

Written by: SUF
2005.04.28. 7:05 

Mint már kedden is írtam, belekezdtem az alternatív feladó játékomhoz tartozó, az elküldött elemeket szétválogató script gyártásába. Második nekifutásra sikerült is megcsinálni a dolgot (szépséghibája az lesz, hogy időzítve kell futtatni, mert ugye Store Sink-ként nem lehet). Már össze is raktam, amikor jött az ötlet, hogy nem elég szétválogatni a leveleket és kiírtani belőlük a speciális csatolmányt (ami a valós e-mail címet tartalmazza), hanem át is kellene írni az e-mail feladóját.

Ez ugye nem jelenthet gondot, hiszen alig kell nyúlni valamihez. A CDO.Message objektumon át kell írni a From property-t és már kész is vagyunk.

Átírtam, megnéztem az eredményt és meglepetten tapasztaltam, hogy az Outlookban nem látok változást. Elkezdtem kisérletezni. Állítgattam az ide vonatkozó propertyket (From, Sender) - Semmi. Állítgattam a lehetséges httpmail és mailheader mezőket:

"urn:schemas:mailheader:from"
"urn:schemas:mailheader:sender"
"urn:schemas:httpmail:from"
"urn:schemas:httpmail:fromemail"
"urn:schemas:httpmail:fromname"
"urn:schemas:httpmail:sender"
"urn:schemas:httpmail:senderemail"
"urn:schemas:httpmail:sendername"

(Már ami ebből állítható és nem Read-Only)

Eredmény semmi.

Arra gondoltam, hogy én berakom a levelet úgy ahogy kell, ő pedig az AD alapján visszakeresi az e-mail-t és változatlanul a számomra épp nem jó AD objektumot rakja be a levélbe. Emlékeztem az Exchange ResolveP2 funkcionalitására, ami kísértetiesen ilyen. Megnéztem a KB-t. Meg is találtam az Exchange 2000-es cikket:

http://support.microsoft.com/kb/288635

Majd miután sejtettem, hogy ez nem jó a 2003-ra tovább keresve azt is megtaláltam:

http://support.microsoft.com/kb/828770

Ez utóbbiból kiderült, hogy amire gondoltam az

1. A 2003-ban már ki van kapcsolva tehát nem lehet a tettes

2. Csak a transporton beérkező levelekre vonatkozik, így az adott esetre nem.

Továbbmenve végül találtam egy ilyen névteret:

"http://schemas.microsoft.com/mapi"

Ugye ehhez a névtérhez tartoznak azok a paraméterek amik az Outlook kiegészítő információit tartalmazzák. Az Exchange ugye MIME formátumú levelekkel beszélget a nagyvilágban, az Outlook meg MAPI leveleket használ (ez utóbbi többet tud, de nem szabványos). Az az információ, hogy egy e-mail cím nem SMTP formátumú ezek között a paraméterek között keresendő. Olvasgattam az MSDN-t (CDO, Exchange schema, MAPI doksi) turkáltam a Platform SDK-ban (Mapitags.h) és meg is találtam amit kerestem. Az eredeti Exchange-es (Active Directory-ból származó) e-mail cím (pontosabban AD user object) ebben a három paraméterben található:

PR_SENDER_NAME
PR_SENDER_ADDRTYPE
PR_SENDER_EMAIL_ADDRESS

Át is írtam az értékeket megfelelően, és láss csodát működik. Legalábbis félig. Mostmár megjelenik a várt feladó, csak éppen a meghatalmazott (on behalf of) státuszban. Túrtam tovább, de nem találtam megoldást (az ide vonatkozó mezőket átírva nem történik semmi).

Ez volt az a pont ahol úgy gondolom, hogy a dolog már használható, így amint dokumentálva össze lesz rakva (remélhetőleg legkésőbb holnap reggelre) megy ki a web-re.

Tags:
 Megjegyzés

Ahhoz, hogy megjegyzést tégy a bejegyzésekhez, regisztrálnod szükséges. Egyszerűen válaszd ki a regisztráció linket a jobb felső sarokban és add meg a szükséges információkat. Ha bejelentkeztél, fűzhetsz megjegyzést a bejegyzésekhet. 

Már regisztráltál? Kattints ide a bejelentkezéshez. 

 

 Keresés