Formás levél

Érdekes jelenségre hívta fel a figyelmemet az ügyfél egyik fejlesztője. Ha az Exchange 2007 OWÁ-ból küld html levelet, akkor a túloldalon már csak plain text-ként látszik. Miközben ha megnézzük a Sent Items folderben, ott bizony html.
Ez vajon mi lehet?

Ellenteszt. Mi van, ha Outlookból küldök html levelet? Úgy is érkezik meg.

Gyors teszt más cégek OWA rendszereiben – mindenhol ugyanez a jelenség.

Ez érdekes. Hiszen elméletileg nem szabadna, hogy különbség legyen a levélben, függetlenül attól, hogy OWÁ-ban vagy Outlookban állították elő. A formátumot saccra a Remote Domain objektumon lehet még utánállítani – és az egyformán kell vonatkozzon minden abba az irányba küldött levélre. De van egyáltalán ilyen állítási lehetőség a Remote Domain objektumokon? Bizony nincs. Legalábbis konzolból nincs.
Persze shellből van. Nézzük csak meg a get-remotedomain | fl parancs kimenetlét. Ott van, elbújva a többi tulajdonság közé a ContentType tulajdonság. Melynek értékei a következők lehetnek:

  • MimeHtmlText: Ha az eredeti levél text volt, akkor text MIME formátumba konvertál. Minden egyéb esetben html MIME formátumba.
  • MimeText: Text MIME formátumba konvertál.
  • MimeHtml: Html MIME formátumba konvertál.

Az alapértelmezés – a set-remotedomain parancs szerint – a MimeHtmlText beállítás. Ez jól is hangzik.

Csakhogy. Az én konkrét esetemben az volt, hogy MimeText.

Rögtön kérdések merültek fel:

  • Ha alapértelmezésben telepítettem, akkor miért nem az alapérték van beállítva?
  • Ha csak text MIME formátumban megy ki a levél, akkor hogyan mehetett ki Outlookból mégis html formátumban?

Jó magyar infomunkásként először azért beállítottam a MimeHtmlText értékét, leteszteltem – és tényleg ez volt a megoldás. Ment OWA alól a html levelezés.

Most már lehetett tipródni, mit is csináltunk. Mitől javult meg a rendszer?

Az első kérdésre viszonylag hamar meglett a válasz. Szűz rendszernél tényleg a MimeHtmlText az alapértelmezés. De ha 2003-ból migrálunk, akkor attól függően, hogy mi volt beállítva a kimenő levelek (Internet Message Formats) MIME kódolására, attól függően már más. Ha ott az volt, hogy ‘Provide message body as plain text’, akkor a migráció során a MimeText jön át. Azaz valószínűleg az összes helyen, ahol teszteltem, ez volt a beállítás a migráció előtt.

A második kérdésre a válasz már fogósabb egy kicsit. Logikusan gondolkodva, ha van egy organizáció szintű beállítás, de bizonyos levelekre vonatkozik, bizonyos levelekre meg nem, akkor léteznie kell legalább egy magasabb prioritású beállításnak, mely felülbírálja azt. Ezzel a témával kapcsolatban ezt a cikket találtam. Olvasgattam, olvasgattam… de nem akart összeállni a kép.

Mit is írnak a cikk vége felé?

Order of Precedence for Message Encoding Options
Exchange 2007 uses the order of precedence as described in the following list to determine the message encoding options for outgoing messages that are sent to recipients outside the Exchange organization:

  • Remote domain settings
  • Outlook settings
  • Mail user or mail contact settings

The list specifies the order of precedence from lowest to highest. A setting made at a higher level may override a setting made at a lower level.

Az utolsó pont szorulhat némi magyarázatra: az Outlook 2007-ben lehetőségünk van nekünk, személy szerint is bejelölgetni a kontaktokat (akár a sajátjainkat, akár a közöseket), hogy milyen formátumban szeretnénk nekik levelet küldeni.
Mondanom sem kell, ritka hülyén van megfogalmazva a szöveg. Hogyan értelmezzük a sorrendet? A higher level azt jelenti, hogy a legalsó a leggyengébb, a legfelső meg a legerősebb? De hát nem ez történt. Amikor beállítottam Outlook szinten, hogy html-ben akarok levelezni, akkor az úgy is ment ki, függetlenül attól, hogy remote domain szinten MimeText volt beállítva.
Megint a logikára kell hagyatkoznom. Ha ugyanis a felsorolás sorrendjét tekintem prioritási sorrendnek is, azaz fentről haladnék lefelé, akkor az a következőket jelentené:

  • Akárhogy is jelölném be a konkrét levél tipusát, ha a címzettre más típus van beállítva, akkor az utóbbi felülírja az elsőt.
  • Hiába van beállítva organizáció szinten a tartalomtípus, ha én a konkrét levelemben más adtam meg, akkor az lesz az erősebb. A levél úgy megy ki.

Ez már annyiból tetszetősebb, hogy ez lehetőséget ad megmagyarázni a jelenséget. Valamiért ha OWÁ-ból küldök html levelet, azt a remote domain nem úgy érzékeli, mintha Outlook-ból állítottam volna be, magasabb precedenciával. Tehát sima szövegként csomagolja MIMÉ-be. Ellenben amikor a remote domain objektumon azt állítom be, hogy vizsgálja meg a levelet, majd aszerint döntsön, akkor már felismeri, hogy ez eredetileg html levél volt – és így csomagolja MIMÉ-be.

Nagyon fontos. Amit a második kérdéssel kapcsolatban írtam, színtiszta spekuláció. Számomra így tűnik logikusnak. Ettől függetlenül abszolút máshogy is lehet.
Az életedet ne tedd fel rá.

3 Comments

  1. Pedig ottan van leirva. Mit is ir a cikk?
    “The list specifies the order of precedence from lowest to highest.”
    Vagyis a lista erossegi sorrendben van, a leggyengebbtol a legerosebb fele. A sorrend:
    * Remote domain settings
    * Outlook settings
    * Mail user or mail contact settings
    Azaz a Remote domain a leggyengebb lancszem, akit barki, barmikor felulbiralhat.

  2. a lista erossegi sorrendben van, a leggyengebbtol a legerosebb fele.
    Persze. Csak baromira nem mindegy, hogy fentről indulsz el lefelé – ahogy a szerző begépelte – és ekkor a ‘mail user’ a higher… vagy már a kész írásra nézel rá, ahol viszont a ‘remote domain settings’ a higher.

  3. Szerintem a szerzo nem visszafele gepelte be. Es ha megnezed, ez egy szamozott lista.

Leave a Reply