Tag Archives: Outlook

Outlook: Jak se zbavit zobrazování pozvánek, na které jsem dosud nereagoval, v kalendáři?

Chodí mi ve formě meeting requestů spousta pozvánek na kde-co a vadí mi, že se mi zobrazují v mém už tak plném kalendáři (jako faded – světlejší), přestože jsem je ještě nečetl, natož abych na ně reagoval. V mém případě se jedná například o různé firemní sportovní aktivity nebo on-line cally Microsoftu pro MVPs, atp.

image

Našel jsem cestu, jak se zobrazování těchto pozvánek v kalendáři zbavit. Možná existuje nějaký jednodušší přepínač (dejte kdyžtak vědět v komentářích), ale mně funguje toto:

Na záložce View, volba Settings:

image

Filter:

image

Záložka Advanced, přidat pravidlo pro Meeting Status (pod All Appointment Fields) not equal to Not yet responded:

image

Add to list, OK, OK:

image

Pravidlo se dá samozřejmě vyladit dle individuální potřeby, např. omezit na „které jsem dosud nečetl“, atp.

Pravidlo je samozřejmě omezeno na View, do kterého jste ho přidali. Používáte-li Views více, je potřeba přidat do všech.

SendGrid vkládá dvojité konce řádků v e-mailových klientech Outlook a Thunderbird

Služba SendGrid vkládá dvojité konce řádků v e-mailových klientech Outlook a Thunderbird, pokud je nastaveno transfer encoding v MIME na „quoted-printable“. Pro vyřešení problému je třeba nastavit transfer encoding na „7bit“. Popsáno také zde. Bod číslo čtyři.

...
MailMessage message = new MailMessage();
message.BodyTransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
...

Outlook: Automatické vypnutí reminderu na příchozích meeting requestech

Můj kalendář je hodně plný a poslední, co bych chtěl, je připomínání každého jednotlivého meetingu (obzvláště ne v době, kdy si připomenutí na meeting-requestu nastavil organizátor schůzky). Remindery si nastavuji výjimečně a chci je mít na událostech, kde si to explicitně určím já.

Hledal jsem tedy způsob, jak automaticky na příchozích žádostech o schůzku automaticky vypínat připomenutí. Našel jsem VBA snippet, který to zařizuje. Protože ale nejsem žádný Outlook-developer, raději si poznamenám celý proces, jak to zprovoznit (návod dávám pro Outlook 2013, ale bude to všude podobné):

  1. V Outlooku dám Alt + F11 (nebo na ribbonu Developer volbu Visual Basic, pokud máte zapnutý).
  2. Ve stromu vlevo vyberu položku ThisOutlookSession (laicky si to představuju jako obdobu global.asax :-))
  3. Do okna pro kód dáme:
    Private WithEvents Items As Outlook.Items
    
    Private Sub Application_Startup()
      Dim Ns As Outlook.NameSpace
    
      Set Ns = Application.GetNamespace("MAPI")
      Set Items = Ns.GetDefaultFolder(olFolderInbox).Items
    End Sub
    
    Private Sub Items_ItemAdd(ByVal Item As Object)
      On Error Resume Next
      Dim Meet As Outlook.MeetingItem
      Dim Appt As Outlook.AppointmentItem
    
      If TypeOf Item Is Outlook.MeetingItem Then
        Set Meet = Item
    
        Meet.ReminderSet = False
        Meet.Save
    
        Set Appt = Meet.GetAssociatedAppointment(True)
    
        If Not Appt Is Nothing Then
          Appt.ReminderSet = False
          Appt.Save
        End If
      End If
    End Sub
    
  4. Skript je potřeba ještě podepsat. V menu Tools zvolíme Digital Signatures
  5. Tlačítko Choose a vybereme certifikát. Pokud nemáme žádný k dispozici, vytvoříme si jej snadno pomocí
    C:\Program Files\Microsoft Office\Office15
  6. Uložit.
  7. Restartovat Outlook.

Pokud by se Outlook vzpouzel spustit, tak outlook /safe a ladit dle vlastních dispozic. ;-)

Outlook/Exchange: Rule that applies to specific recipient email alias / Pravidlo s podmínkou na e-mail alias

I do have several generic e-mail aliases set to my Exchange mailbox. I want to create Outlook rules to process these messages separately and it was a little bit tricky to find the right condition which applies to messages sent to specific alias:

  1. You can use „with specific words in the message header“ condition, where you specify „To: <alias@domain.com>“ in Search list (or other forms applicable to message header as you need).
  2. The „with specific words in recipient’s address“ condition didn’t work for me.
  3. The „sent to people or public group“ condition didn’t work for me.

Mám na svém Exchange mailboxu nastavených několik generických aliasů typu (info@domain.com, admin@domain.com, atp.) a chtěl jsem vytvořit Outlook pravidlo, které by mi tyto zprávy zpracovávalo odděleně:

  1. Je potřeba použít podmínku „pokud obsahuje: určitá slova v záhlaví zprávy“ s volbou „To: <alias@domain.com>“ (nebo dle potřeby jiné formy použitelné v hlavičkách zpráv).
  2. Podmínka „pokud obsahuje: určitá slova v adrese příjemce“ mi nezabrala.
  3. Podmínka „odesláno uživateli: osoby nebo veřejná skupina“ taky nefungovala.

Outlook+Exchange: „Your server administrator has limited the number of items you can open simultaneously. Try closing messages or removing attachments and images from unsent messages you are composing.“

Pokud Vám Outlook (v mém případě 2013) vrací takovouto chybu (obzvláště ve spojení s Exchange 2013), pak vězte, že to ve skutečnosti znamená něco jako „příliš mnoho otevřených spojení jednoho uživatele na Exchange server“. Mně se to konkrétně děje, když si pustím Outlook na desktopu a notebooku zároveň, tak mi nejde pracovat s veřejnými složkami, protože pro ně si chce Outlook otevřít další spojení a Exchange už mu ho nedá.

Pokud zavřu jednoho z klientů, problém zmizí.

Viz též:

Update

Toto pomohlo (http://www.symantec.com/business/support/index?page=content&id=TECH198553):

  1. On each Exchange 2013 mailbox server, create a new registry DWORD value called Maximum Allowed Sessions Per User under the following registry key:
    \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
    
  2. Set Maximum Allowed Sessions Per User to 0x00001388 to allow up to 5,000 sessions per user.

Připojení Outlooku RPC over HTTP(S) na Exchange

Na netu jsou stovky návodů, jak nakonfigurovat RPC over HTTP komunikaci Outlooku s Exchange serverem, např.

Návody jsou to celkem srozumitelné, nicméně může nastat mnoho zásadních zádrhelů, které návody nedostatečně zmiňují, či málo zdůrazňují. Některé, na které jsem narazil já:

Certifikát k HTTPS spojení musí být důvěryhodný

Pokud používáme k HTTPS certifikát generovaný vlastní certifikační autoritou (CA), pak musíme na klientském počítači zajistit, aby připojení k serveru probíhalo čistě, bez jakéhokoliv promptu Internet Exploreru na certifikát. Outlook totiž tento prompt nepodporuje a spojení zamítne.

V podstatě je potřeba nainstalovat certifikát na klienta, třeba přístupem na https://server/rpc/rpcproxy.dll. Musíme dosáhnout stavu, aby se nás to ptalo jen na heslo, na nic jiného. Nainstalovaný certifikát nám však bude fungovat jen v případě, že máme instalovaný i certifikát CA – ten je v členských počítačích domény instalován automaticky (pokud CA používá AD), na nečlenských počítačích je potřeba ho instalovat samostatně.

Pozor – narazil jsem na problém, kdy IIS mělo přidělený certifikát, ale mezi tím došlo k reinstalaci CA. Certifikát na IIS tak neodpovídal kořenovému certifikát CA. Internet Explorer to navíc pojal po svém. Místo, aby ohlásil neplatný certifikát, tak po instalaci kořenového certifikátu na jakýkoliv HTTPS požadavek vůči příslušnému serveru odpovídal chybou „Server nebyl nalezen nebo došlo k chybě v systému DNS.“ (jako kdyby server neexistoval).

Global Catalog na jiném serveru

Pokud máme scénář s jedním Exchange serverem, na kterém navíc běží i doménový řadič (DC), může se zdát, že není co řešit. Zásadní komplikace však nastane, pokud máme v doméně více DC a Global Catalog je na jiném serveru, než Exchange.

Který server je Global Catalogem poznáme v konzoli Active Directory Sites and Services, pokud si nalistujeme příslušný server, položku „NTDS Settings“ a k ní Properties – tam je zaškrtávací políčko Global Catalog. Jak přesunout GC na jiný server je mimo dosah tohoto článku.

Pokud tedy máme GC na jiném serveru, nestačí nám standardní konfigurace portů (hodnota ValidPorts), protože potřebujem na port 6004 dostat právě process lsass.exe z GC.

Jedna možnost je přesunout GC na stejný server k Exchange. Druhou možností je nastavit klíč registru „NSPI interface protocol sequences“ i na GC server a na exchange serveru nastavit v klíči „ValidPorts“ port 6004 na GC server (NetBIOS jméno i FQDN). V Outlooku pak jako server exchange vyplníme NetBIOS název GC serveru.

Pozor na to, že nám ve standardním nastavení funguje dokonce i RPCPING, protože si server s exchange na port 6004 nasadí vlastní proces lsass.exe. Nicméně Outlook zahájí komunikaci a nic se nepřipojí. V logu webové služby jsou též korektní řádky RPC_IN_DATA a RPC_OUT_DATA se success kódem 200.

Troubleshooting nástroje a doporučení

  • spouštět Outlook s parametrem outlook /rpcdiag (též Ctrl+RClick na tray-ikonu Outlooku a volba Connection Status…)
  • telnet localhost 6001,  6002, 6004 (ze serveru) dává banner „ncacn_http/1.0“
  • netstat -ano (ze serveru) nám říká, jaké procesy obsluhují jaký portu (6001-store.exe, 6002-mad.exe, 6004-lsass.exe nebo mad.exe),
  • utilita rpcping z Windows Server Resource Kitu (z klienta),
  • utilita rpcdump z Windows Server Resource Kitu (z klienta i ze serveru),
  • adresa https://server/rpc/ se musí ptát na heslo a pak odpovědět 401.3,
  • adresa https://server/rpc/rpcproxy.dll se musí ptát na heslo a pak odpovědět prázdnotou,
  • v logu webové služby musí být záznamy RPC_IN_DATA a RPC_OUT_DATA, kód 200.
  • při nastavování accountu v Outlooku musí být v základním dialogu interní jméno serveru a až v nastavení RPC over HTTPS se dávají public jména serveru (ty se musí shodovat se jménem, na které je vystaven certifikát pro SSL)

Outlook: Vyhledávání adresáta pouze v Global Address List

Pokud v Outlooku vyhledáváme uživatele, pak pokud existuje záznam v Kontaktech (Contacts) i v Globálním seznamu adres (Global Address List), pak nám Outlook vrátí ten z Kontaktů. Pokud však vyhledáváme pomocí syntaxe „=username“, pak dostaneme vždy záznam z Global Address List.