Category: WSS v3


I only get a chance to setup email enabled libraries once every 4 months or so. My last setup was a couple of weeks back. This was for one of our customer who wanted to use incoming email functionality to support some reports coming from external sources; this particular customer was running Microsoft Exchange 2007.

Before I get into the actual steps, here are some basics: For email enabled libraries to work in SharePoint, you need at least one server in your SharePoint Farm to host the SMTP service (on Windows 2008 and above this service is still administrated through IIS 6.0 Manager) this service stores routed email in a drop folder from where SharePoint timer job picks it up periodically and puts it in the document library linked to an email alias (the LibName part in LibName@companyname.com). The timer jobs run on all severs connected to the Farm but only the server where the mail is forwarded to will actually process it. When Distributed Lists management is turned on SharePoint will create Contacts for all incoming email library under the selected organisational unit.

Here are some quick sanitised steps that I documented for the customer:

  1. Create an Organisational Unit under you domain called SPMail, for example the one I created has an LDAP Path: OU= SPMail,OU=Melbourne,DC=COMPANYNAME,DC=COM
    1. On Windows Server 2008 and above ADSI Edit is preinstalled and one of best tool to find the LDAP Paths
  2. On the newly created OU setup Delegate rights with Full Control for the Central Administration\Timer Service Account: DOMAIN\ServiceAccountName
    1. Full Control is not Necessary, you can get by Read, Write
  3. On your DNS Server add a new MX record, to a new subdomain like SPMAIL such that your entry looks like SPMAIL.COMPANYNAME.COM with Mail Server Priority set to 20 and DNS pointing to the SharePoint box (for example SPAPP.COMPANYNAME.COM) in your farm with the SMTP service running locally.
  4. Open up Exchange 2007 Management console and under Hub Transport create a new Send Connector called SharePoint Mail
    1. Use the following for the Address Space value: SPMAIL.COMPANYNAME.COM
    2. Under Smart Host Routing setting select: Use DNS for MX Records
  5. Install and setup the SMTP service on SPAPP.COMPANYNAME.COM for domain: SPMAIL.COMPANYNAME.COM with the drop folder set to its default value
  6. Finally setup the Incoming Email settings under operations in Central Administration (<CA SITE>/_admin/IncomingEmail.aspx)

For testing simply enable email on Shared Document library under the Central Admin Site. This can be done by going to list settings and the clicking on the Incoming Email Settings link.

Library: <CA SITE>/Shared%20Documents/Forms/AllItems.aspx

Email Alias: SharedDocuments@SPMAIL.COMPANYNAME.COM

Verify that a new Contact is created in AD and Exchange and then send an email using you email client to verify if emails are being routed to the library.

A client of mine did not want parts of their Intranet based on MOSS 2007 to be searched; now that’s quite easy to do with Crawl rules. As they wanted strict control over the content that can be crawled I trained them on how to control ‘the crawl’ behaviour for content within SharePoint.

There are three places within SharePoint where end users can change search visibility setting or exclude content for search.

  1. Change Visibility for a Web site: In the Site Settings page, site owners can click the Search Visibility link to go to the Search Visibility page SharePoint. In the Indexing Site Content group, selecting the No option to will exclude all content within the site. The crawler will in turn simply skip the site and not include any of its content in the index.
  2. Exclude Site Columns: In the Site Settings page, site owners can click the Searchable Columns link to go to the Search Settings for Fields page in SharePoint. This page will enumerate all the site columns defined at the current site level. Selecting the NoCrawl check box for the site columns will exclude them from future crawls.
  3. Exclude Lists: The last option for excluding content exists at the level of the SharePoint list settings. It enables list owners to exclude the list and all the content within it from crawls. In the settings page of the list, click the Advanced Settings link. Selecting the No option under Search Available for crawl tells the crawler to exclude the specific list from a crawl.

Also if there are certain pages or entire site content that site designers don’t want to be crawled, simply putting the no index directive in the head section of the master page or layout page’s mark-up will stop the SharePoint crawler from crawling the pages:

 <META NAME=” ROBOTS” CONTENT=” NOHTMLINDEX”/>

I recently blogged about how to security trim contents of a page using the Security Trim Control, it works great for content on the page but what about contents within a web part I was asked, for example that of a DataView web part. Well that’s easy too, all you need is a little less known built in XSLT function called ddwrt:IfHasRights(<Permission Mask>)) and some Conditional Formatting logic.

  1. Simply select the text or mark-up inside the data view web part and then
  2. Click on Conditional Formatting option in the Task Panes menu
  3. In the Condition Criteria dialog box select Advanced and in the Advanced Condition dialog box change Select a function category to All
  4. Find and insert the IfHasRights() function by double clicking on the Select a function list
  5. Use a single Permission Mask for example 4 IfHasRights(4) to only make the mark-up or text visible when the user has edit rights on the page\item

Following is a list of Permission Masks for the build in permissions

  • ViewListItems – 1
  • AddListItems – 2
  • EditListItems – 4
  • DeleteListItems – 8
  • ApproveItems – 16
  • OpenItems – 32
  • ViewVersions – 64
  • DeleteVersions – 128
  • CancelCheckout – 256
  • PersonalViews – 512
  • ManageLists – 2048
  • ViewFormPages – 4096
  • Open – 65536
  • ViewPages – 131072
  • AddAndCustomizePages – 262144
  • ApplyThemeAndBorder – 524288
  • ApplyStyleSheets – 1048576
  • ViewUsageData – 2097152
  • CreateSSCSite – 4194314
  • ManageSubwebs – 8388608
  • CreateGroups – 16777216
  • ManagePermissions – 33554432
  • BrowseDirectories – 67108864
  • BrowseUserInfo – 134217728
  • AddDelPrivateWebParts – 268435456
  • UpdatePersonalWebParts – 536870912
  • ManageWeb – 1073741824
  • UseRemoteAPIs – 137438953472
  • ManageAlerts – 274877906944
  • CreateAlerts – 549755813888
  • EditMyUserInfo – 1099511627776
  • EnumeratePermissions – 4611686018427387904
  • FullMask – 9223372036854775807

I recently had the opportunity to attend rotation 3 (R3) or the first public offering of the Microsoft Certified Master program for SharePoint 2007.  This without doubt will be one of the most intense, humbling and gratifying experiences of my life.

After a gruelling three weeks of SharePoint expert training and intense peer discussions, three difficult written exams, a tough but fair Qualification lab and countless sodas and sleepless nights, I am very pleased to announce, that I’m now a Microsoft Certified Master for SharePoint 2007!

I was originally supposed to attend the beta rotation (R2) back in April but as luck would have it I could not attend R2 and boy was I glad to start on 1st of June, 2009!  First of all the weather in Redmond was fantastic by all accounts, it only rained once or twice while I was there. Microsoft jokingly calls weeks like these the recruitment weeks. Secondly the training format, the qualification lab and venue improved tremendously compared to the last two rotations.  The Master Program folks seek exhaustive feedback and based on the improvements to the program on per rotation basis, you can tell that they take this feedback seriously.

My journey with the program started when I applied for it last year in November, 2008; lucky for me it was not too hard to get a buy in from my employer Stargate Global Consulting, they have a vision to build a Centre of Excellence for SharePoint in Australia, and, having MCMs on board played into that vision. Part of the application process is submission of engagement briefs, sanitised copies of technical documents authored in the past and possibly an interview (I did not get one but have been told by other candidates how hard it was).  I got the green light from the SharePoint MCM Program Managers in January, 2009 along with a list of pre-reading material and invitation emails (more on this later). I did not know at the time but the selection criteria is right up there, we have been told for every candidate selected in the last rotation four to five applicants were refused.

I did not pay much attention to Pre-read list as I had read most of the material over the last few years, big mistake as I was to learn later – most of the documents and articles on the pre-reading list have been updated over the last year.  I focused more on the logistics side. Based on the advice of former MCM Candidates, I flew in a couple of days early and shared a flat with two really personable and knowledgeable Microsoft Consulting Services folks – or as we now like to call ourselves ‘The Three Amigos’. The off campus housing and learning experience was great, although you are the foremost resource responsible for your own learning, the support from peers cannot be denied and one of the best things about MCM.

June the 1st was an early start like all other days of the program, the program kicked off at 7:45 AM on the dot at Building 40, breakfast was served and the seats had name tags along with MCM Folders and log on instructions to the fabulous blade servers. MCM collateral was also neatly stacked at the back of the room for our collection. From the introductions alone it became quite obvious the deep skill set and expertise on parade in the room.  We had a good balance of architects, consultants, support engineers and folks from both Microsoft Consulting Services and Microsoft Partners; almost all the 17 candidates had at least 3 to 8 years experience with the SharePoint technology and products among other things. The best thing about all of us was our eager attitude towards learning. We were all here to learn “what we don’t know that we don’t know”.

We were also introduced to our trainer for the day; we had over 12 through the three weeks, each undoubtedly an expert in his or her area. The training days were busy – early starts and late finishes was the norm. A full day of presentations and discussions (45 minute lunch break inclusive) was followed mostly by lab work and lots of reading over the weekends. You had little time for anything else other then eating or sleeping.  Any free minutes we had were put to use by mini SharePoint Trivia sessions, I learnt a lot of things from this valuable exercise. This is where the true benefit of peers becomes apparent; I also can’t count the number of times I was assisted by my fellow MCM candidates during the course of the labs.

Not going into too much detail from a ‘What was covered Perspective’.  Week one focused largely on the architectural and design side of SharePoint, week two dived into the features available within the product and week three focused on the custom development side of things. Although not all SharePoint areas were covered as that would have been a herculean task given the nature of the product and the constant flux of improvements with service packs and updates. In my personal opinion program manager had done a great job, the course was very well structured. The material was highly relevant and can be largely applied to our daily work. 

The three written exams I mentioned earlier took place after each week of training, it’s important to understand that you are not taught to the test, so don’t be surprised if you are thrown an odd ball question, it probably is testing your concepts – both your existing experience and the pre-reading list play an important role here.

As the old adage goes ‘All work and no play makes Jack a dull boy’ this was true too in the case of the MCM Program, James (Program Manager) mixed it all up with visits by the product team, candidate dinners, the traditional Go-Karting run off against the OCS MCM folks (we won the 1st and 3rd positions), company store visit etc. I must add that James did a great job in keeping us motivated, especially by week three where we all needed it badly. My personal favourite was the visit to the Home of the Future, it was quite inspiring. I came out buzzing with ideas for services in the cloud that will be required in the not so distant future.

The grand finale of the program is the much dreaded Qualification lab. The tireless lab work and studying for the exams in the preceding weeks did not prepare me for what I was to experience in the Qualification lab. The lab preparation and the blade server setup were excellent.  I remember how pleased I was to get the tasks under my belt, even let a little shout of joy out just before the last minute warning. I had not realised it in the course of the day but the sheer amount of scenarios and work that needed to be performed had almost drained me.  It hit me when I tried to get up from my seat and just fell back without warning. This was probably one of the most memorable days of the whole program.

It’s true, as it’s been iterated on number of blogs before, MCM is not for the faint hearted, and you will need all the stamina in the world and passion to succeed. Quite frankly MCM is the best product training you can have.  The recognition and respect for achieving this status is unparalleled in the Microsoft eco system. I would challenge all seasoned SharePoint professionals to consider the MCM Program; do you have what it takes to be a Master?

SPD is officially free download from 1st of April 2009, We got official confirmation from Microsoft on that one. Current SPD license holders will be upgraded to Expression Web.

 You can download it at  http://www.microsoft.com/spd

Through MOSSIG and Stargate Global Consulting we thought this was a good reason to offer a free introduction training for Stargate Designer, you can sign up for this 2 hour workshop here.

Each workshop will be limited to 12 people, so sign up quickly!