Le Café Central de DeVa              

                    let.us.develop.share.messaging.more... DeVa blogs!!




 

Blog - Title

October, 2008

  • Le Café Central de DeVa

    Monitoring event sink # 25 - Recipients modified mail (using event sink) sent from PICKUP folder and lands in the DROP folder ?

    • 1 Comments

    Recipients modified email messages (using event sink) sent from PICKUP folder and lands in the DROP folder ?

    The Pickup folder processes outgoing messages that are created as text files and then copied to the Pickup folder. When Request for Comments (RFC) 822 messages that are correctly formatted are copied to the Pickup folder, the SMTP service initiates delivery. In this replay method, the X-Sender envelope field and the X-Receiver envelope field are written to the e-mail message when the SMTP service puts the e-mail message into the Drop folder.

    Note
    The SMTP service puts the e-mail message into the Drop folder for local delivery on a computer where Exchange is not installed.

    In this scenario, the Pickup operation honors the envelope fields that are written to the e-mail message

    In detail

    This is because, we will have an default domain entry in the SMTP mail area of IIS. This is the process that handles all mail that comes into your SMTP system that is not otherwise specified. This mail would be delivered based on the settings you make in the properties area of that default setting. This includes the name of the server that the mail claims to be from.

    In addition to this default entry, you can also create an Alias Domain for any other domains you might own. Each one can have its own name. So where your default might say mail is coming from Mydomain.com, you can set up alias domains for domain.com and minedomain.com. Once you have those aliases set up, each alias then sends its mail to the DROP folder associated with that alias. The mail will sit there in the DROP folder, waiting for further processing. It assumes that another system is going to poll that DROP folder and do something with the mail.

    If you end up with mail messages in your DROP folder because you created an alias domain by accident, simply delete that alias and then stop and restart the mail server. Now drag all the messages from the DROP area back into the PICKUP area. They will process through the default queue, following your normal rules and get out to your recipients.

    .

  • Le Café Central de DeVa

    Test and troubleshooting tools for various Exchange technologies

    • 0 Comments
    I tried to compose the test and troubleshooting tools for various exchange technologies. This initial list upto Exchange Server 2003. 
     

    Technology

     

    Tools for test and troubleshooting tools

    Active Directory Services Interfaces (ADSI)

     

    All standard test and debugging tools, as well as other Microsoft and third-party test and debugging tools, can be used.

     

    Collaboration Data Objects for Windows 2000 (CDOSYS)

     

    No special debugging tools are needed to debug applications that use CDOSYS.

     

    CDOSYS SMTP/NNTP Event Sinks

     

    No special debugging tools are needed to debug applications that use CDOSYS. For particularly difficult protocol-interaction issues, a network monitoring utility may prove helpful, but is typically not required.

     

    Collaboration Data Objects for Exchange 2000 Server (CDOEX)

     

    No special debugging tools are needed to debug applications that use CDOEX.

     

    Collaboration Data Objects for Exchange Management (CDOEXM)

     

    No special debugging tools are needed to debug applications that use CDOEXM.

     

    Collaboration Data Objects for Exchange Workflow (CDOWF)

     

    No special debugging tools are needed to debug applications that use CDOWF. Custom applications might be created to analyze the process audit logs created during process execution. If you are using the Workflow Designer for Exchange 2000 Server, enable Just-In-Time (JIT) script debugging. JIT starts the Microsoft Script Debugger when the error occurs. The debugger starts on the server, so you need to have access to the server.

     

    Exchange OLE DB Provider (ExOLEDB)

     

    No special debugging tools are needed to debug applications that use ExOLEDB.

     

    Exchange Store Event Sinks

     

    No special debugging tools are needed to debug applications that use Exchange store event sinks.

     

    Exchange Web Forms

     

    No special debugging tools are needed to debug applications that use Exchange Web forms. Note, however, that because the forms execute on the computer running Microsoft Exchange Server 2003, debugging may require the developer have access to the Exchange server. Always use caution when allowing anyone direct access to the Exchange server.

     

    HTTP/Web Distributed Authoring and Versioning (WebDAV)

     

    No special debugging tools are required to debug applications that use WebDAV. For particularly difficult protocol-interaction issues, a network monitoring tool may prove helpful. The NETMON.EXE tool can be very useful in debugging WebDAV protocol interactions. Because WebDAV queries are sometimes sensitive to minor syntactical differences, a WebDAV query tool can also be helpful.

     

    WebDAV Notifications

     

    No special debugging tools are needed to debug applications that use WebDAV Notifications. For particularly difficult protocol-interaction issues, a network monitoring tool may prove helpful, but is typically not required.

     

    Incremental Change Synchronization (ICS)

     

    No special debugging tools are needed to debug applications that use ICS.

     

    Lightweight Directory Access Protocol (LDAP)

     

    No special debugging tools are needed to debug applications that use LDAP. For particularly difficult protocol-interaction issues, a network monitoring tool may prove helpful, but is typically not required.

     

    Messaging Application Programming Interface (MAPI)

     

    No special debugging tools are needed to debug applications that use MAPI.

     

    Outlook Object Model (OOM)

     

    No special debugging tools are needed to use OOM.

     

    Outlook Web Access

     

    No tools are available for debugging calls to Microsoft Outlook® Web Access, because the internal architecture is not available for debugging, and the URL calls required to access Outlook Web Access programmatically are not documented or supported.

     

    Exchange Rules

     

    No special debugging tools are needed to debug applications that use Exchange rules. Client-side rules require Outlook for proper testing.

     

    SMTP Event Sinks

     

    No special debugging tools are needed to debug applications that use SMTP event sinks. For particularly difficult protocol-interaction issues, a network monitoring tool may prove helpful, but is typically not required.

     

    Windows Management Instrumentation providers for Exchange (WMI)

     

    No special tools are required to debug applications that use WMI.

     

    Exchange Backup & Restore API

     

    No special tools are required to debug applications that use the Exchange Backup and Restore API.

     

    Exchange writer for the Windows Volume Shadow Copy Service

     

    No special tools are required to debug applications that use the Windows Volume Shadow Copy Service.

     

  • Le Café Central de DeVa

    CDOSYS + Quoted-printable

    • 0 Comments

     

    Code snippet
     
     
    'private void cmdSend_Click(object sender, System.EventArgs e)
     
    {
     
    try
     
    {
     
    CDO.Message oMsg = new CDO.MessageClass();
     
    CDO.Configuration oConfig = new CDO.ConfigurationClass();
     
    ADODB.Fields oFields = oConfig.Fields;
     
    StringBuilder MailString = new StringBuilder();
     
    int x = 1000;
     
    // Set up configuration to send to remote SMTP server
     
    oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = CDO.CdoSendUsing.cdoSendUsingPort;
     
    oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = txtSMTPServer.Text;
     
    oFields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"].Value = 25;
     
    oFields.Update();
     
    // Apply the configuration object to the message object
     
    oMsg.Configuration = oConfig;
     
    // Make the root bodypart "quoted-printable"
     
    oMsg.BodyPart.ContentTransferEncoding = "quoted-printable";
     
    // Set up the message
     
    oMsg.From = txtFrom.Text;
     
    oMsg.To = txtTo.Text;
     
    oMsg.Subject = txtSubject.Text;
     
    MailString.Append("<table>");
     
    while (x > 0) 
     
    {
     
    MailString.Append("<tr><td>this is a test, </td></tr>");
     
    x--;
     
    }
     
    MailString.Append("</table>");
     
    oMsg.HTMLBody = MailString.ToString();
     
    oMsg.Send();
     
    txtOutput.Text = "Message Sent!";
     
    MailString = null;
     
    oFields = null;
     
    oConfig = null;
     
    oMsg = null;
     
    }
     
    catch(Exception MyException)
     
    {
     
    txtOutput.Text = MyException.Message;
     
    }
     
    }
  • Le Café Central de DeVa

    Gotcha : PowerShell questions

    • 1 Comments

    I composed couple of Windows PowerShell questions:

    Can you create your own PowerShell object?

    We can write a Cmdlet, but we have to do that with a .NET Framework language such as C# or VB.NET.

    Can we create a.BAT file using PowerShell?

    No. But we can create PowerShell scripts, which have a .PS1 file extension

    Can we run a .VBS file natively run in PowerShell?

    No, we can't.

    Can we work PowerShell against remote systems? If so how?

    PS 1.0 will not work against remote systems. However, we can call WMI or .NET Framework and use them to run against remote machines.

    How can we sign a script?

    Same as signing any code

    Can you run more than one copy of PowerShell at the same time?

    Yes.

    Will I need to know PowerShell to administer Exchange 2007?

    Yes we can manage Exchange from the command prompt or by using scripts. Also we can still do it by using the GUI-based management of Exchange without knowing PowerShell.

    How do you find all the namespaces available in PowerShell?

    Get-PSProvider will list all the PowerShell providers and Get-PSDrive will list all the drives currently mapped to the namespaces surfaced by those providers.

  • Le Café Central de DeVa

    API's that are not included in Exchange Server 2007 ?

    • 0 Comments

    When you migrated from Microsoft Exchange 2000 & 2003, where they provide several API's that are not included in Microsoft Exchange Server 2007. Please find the following API's that are not included in the Exchange Server 2007 environment & the recommended technologies to migrate to.

    APIs that are not included in Exchange 2007

    API

    Status in Exchange 2007

    Replacement Technology

    CDOEX

    De-emphasized but still supported.

    Exchange Web Services

    CDOEXM

    Not included in Exchange 2007.

    Microsoft Windows PowerShell and Exchange 2007 commands

    CDOWF

    Not included in Exchange 2007.

    Windows Workflow Foundation (WWF) and Microsoft BizTalk Server 2006

    EXOLEDB

    De-emphasized but still supported.

    Exchange Web Services

    MAPI

    De-emphasized but still supported.

    Exchange Web Services

    Public Folders

    De-emphasized but still supported.

    Exchange Web Services

    Store Events

    De-emphasized but still supported.

    Exchange Web Services

    WebDAV

    De-emphasized but still supported.

    Exchange Web Services

    Web Forms

    Not included in Exchange 2007.

    ASP.NET

    WMI Providers

    Not included in Exchange 2007.

    Windows PowerShell and Exchange Server 2007 commands.

     

  • Le Café Central de DeVa

    Monitoring event sink # 24 - Store event sink is not working as expected in Exchange Server 2007

    • 0 Comments

    When i am working with my customer with regards to Exchange store event sink, he reported it's not working as expected. There is no issues in the Event viewer and no error it thrown. We tried with Microsoft Exchange Server 2007 environment, the store event sink does not run as expected.

    Note: The event is triggered, but the registered script is not executed or no file is created.

    This issue occurs because of some changes in Active Template Library (ATL) 8.0.

    To resolve this problem in Exchange Server 2007 Service Pack 1, install Update Rollup 1 for Exchange Server 2007 Service Pack 1. For more information and resolution of this issue, please go through the following KB article.

  • Le Café Central de DeVa

    Nutshell : MSXML is not supported in .Net applications

    • 0 Comments

    I started working from Visual Basic 6, where i had used XML Parser (MS XML) to fetch the data's using WebDAV. But the same logic won't apply for you when you do with .Net applications.

    So, where we need to use MSXML and .Net Framework classes's for XML?

    • Microsoft XML Core Services (MSXML) : As i updated you earlier you can easily use MSXML in Visual Studio 6.0 applications as DOM and SAX Parser with support for XSLT and XPath.
    • .NET Framework Classes for XML : But when you're planning to implement the XML, then you need to make use of System.XML, the .Net framework classes for XML instead of MSXML.
      • Because the System.Xml namespace provides standards-based support for processing XML.
      • System.xml is not just the managed version of MSXML;
      • its functionality may overlap that of the MSXML COM library, and it also contains a rich object model and hierarchy.

    FYI: You can go through this below given article, which gives overall view and design goals of XML in the .Net Framework.

    Design Goals for XML in the .NET Framework
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondesigngoalsforxmlframeworkinnet.asp

    No Official support. Do you know why it so?

    Officially Microsoft does not support the use of MSXML (Microsoft’s COM-based XML parser) in .NET applications.

    This is because MSXML uses threading models and garbage-collection mechanisms that are not compatible with the .NET Framework. Using MSXML in .NET applications through COM interoperability can result in unexpected problems that are difficult to debug.

    Please note that Microsoft does not recommend or support directly instantiating and using MSXML objects in .NET code, nor does Microsoft recommend or support marshalling MSXML interface pointers across the interop boundary

    So what is the workaround or best practice needs to be done?

    Support for implementing standards-based XML functionality in .NET applications is built into the .NET Framework. The .NET Framework classes in the System.xml namespaces should be used to implement standards-based XML functionality in .NET applications.

    Code snippets: FYI: I have enclosed couple of code snippets for your reference.

    Earlier we might have created a web request to a web server like this using MSXML,

       1:  Dim oXMLHttpRequest As New MSXML2.XMLHTTP
       2:  ' Provide the respective values
       3:  oXMLHttpRequest.open "GET", "http://[servername]/[virtualdirectory]/[filename.xml]", False, "", ""
       4:  oXMLHttpRequest.send
       5:  Debug.Print (oXMLHttpRequest.responseText)


    When you create the .Net applications, you need to do the same by using .Net framework classes like,

       1:      using System;
       2:      using System.Xml;
       3:      using System.Net;
       4:      
       5:      public class Sample    
       6:      {
       7:          public static void Main()        
       8:          {
       9:              // Provide the respective values
      10:              HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://[ServerName]/[virtualdir]/[filename.xml]");
      11:   
      12:              // Provide the Username and password.
      13:              request.Credentials = new NetworkCredential("[username]", "[password]");
      14:   
      15:              // It downloads the XML file from the specified server.
      16:              HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      17:              
      18:              // Then it loads the XmlDocument.
      19:              XmlDocument doc = new XmlDocument();            
      20:              doc.Load(response.GetResponseStream());
      21:              doc.Save(Console.Out);
      22:   
      23:              // Finally don't forgot to release the resources of the response.
      24:              response.Close();
      25:          }
      26:      }
     
     
  • Le Café Central de DeVa

    Tutorial : Organizational Forms Library - Series # 2

    • 0 Comments

    Can we create it programmatically?

    To create it programmatically using MAPI, we need to make use of CreateFolder(), the MAPI function. It is necessary to have very special privileges (obtained by opening the store with an EntryID created using IExchangeManageStore::CreateStoreEntryID()) to get it to work.

    Please refer the following KB to create Org. forms library programmatically.


    How to create Org. Forms Library in Exchange Server 2003 ?

    To create a new Organizational Form in Exchange Server 2003, please follow the steps given below:

    1. Start Exchange System Manager.

    2. Expand the Organization object. Expand your Administrative Group.

    3. Expand Folders. Right-click Public Folders.

    4. Click View System Folders.

    5. In the list of folders present in the right-hand pane, click the EFORMS Registry folder.

    6. Right-click the EFORMS Registry folder, then click New. Click Organizational Form.

    7. Enter a name for your Organizational Form, and then click OK.

    8. Repeat these steps for multiple forms to create the library.

    Note:
    1)
    How to create copies of organizational forms library?

    In Exchange Server 2003, to create copies of the Organizational Forms Library on other servers, click the Replication tab, and then type the name of server that you want to contain the copy of the Organizational Forms Library.

    2) How to set the storage limits for an organizational forms library?

    To set storage limits for an Organizational Forms Library, click the Limits tab. To create a description of an Organizational Forms Library, click the Details tab. To set permissions for each user, click the Permissions tab.


    How to create Org. Forms Library in Exchange Server 2007 ?

    Per the KB, you need to follow the following method to create an Organizational Forms Library as it got changed in Exchange 2007.

    To create an Organizational Forms Library in Exchange 2007, follow these steps.

    1. Create a new public folder.

    a. Click Start, point to All Programs, click Microsoft Exchange Server 2007, and then click Exchange Management Shell.

    b. Run the following command at the Exchange Management Shell prompt:
    New-PublicFolder -Path "\NON_IPM_SUBTREE\EFORMS REGISTRY" -Name "My Organizational Forms Library"

    Note: You can use the Exchange management shell on any version of Exchange 2007 to create a folder. However, in Exchange 2007 SP1, you can also create the EFORMS REGISTRY folder by following these steps:

                a. Go to Toolbox in Exchange Management Console. Double-click Public Folder Management Console.

                b. In the left pane, click System Public Folders.

                c. in the Action pane, click New Public Folder. Type EFORMS REGISTRY as the folder name, and then click NEW.

                d. After the folder is created, click Finish to exit the wizard.

    2. Add the PR_EFORMS_LOCALE_ID.

    a. Use an account that belongs to the Exchange Administrators Group to log on to a client computer that is running Microsoft Office Outlook 2003 or a later version of Microsoft Outlook.

    b. Start the Microsoft Exchange Server MAPI Editor (Mfcmapi.exe) from the MFCMAPI folder.

    c. Create a MAPI profile if it is necessary.

    d. On the Session menu, click Logon and Display Store Table.  Select MDB menu, click Open Public Folder Store, and then click OK.

    e. Expand Public Root, expand NON_IPM_SUBTREE, and then expand EFORMS REGISTRY.

    f. Click the public folder that you created in step 1. For example, click My Organizational Forms Library.

    g. Click the PR_URL_NAME property. On the Property Pane menu, click Modify Extra Properties. Click Add, and then click Select Property Tag.

    h. Click PR_EFORMS_LOCALE_ID in the list, and then click OK. Click OK two times. A red mark is displayed next to the newly created PR_EFORMS_LOCALE_ID property.

    i. Double-click PR_EFORMS_LOCALE_ID. In the Unsigned Decimal box, type the desired locale ID, and then click OK. For example, type 1033 for English, type 1040 for Italian, or type a different ID for a different locale.
    Note: To determine the locale ID for other locales, visit the following Microsoft Web site: http://msdn2.microsoft.com/en-us/library/aa579489.aspx (http://msdn2.microsoft.com/en-us/library/aa579489.aspx)

    j. Exit MAPI Editor.

    3. Configure limits and permissions for the Organizational Forms Library folder. Note: You can use suitable cmdlets in the Exchange Management Shell to set limits and permissions for the Organizational Forms Library folder.

    a. To set storage limits, use the following cmdlet: Set-PublicFolder

    b. To set permissions for each user, use the following cmdlets: Add-PublicFolderClientPermission, Add-PublicFolderAdministrativePermissions

  • Le Café Central de DeVa

    Tutorial : Organizational Forms Library - Series # 1

    • 0 Comments

    What are the various types of Outlook form libraries available?

    There are three types of Outlook form libraries are available, they are (i) Organizational Forms Libraries (2) Personal Form Libraries (3) Folder Libraries.

    What is an Organizational Forms Library?

    • An organization's forms library is a repository for forms (templates that help users to enter and view information)  that are accessed by all users in a company.
    • In simple terms, an organizational forms library is a special type of public folder that is listed only with system folders.

    Some of the examples are, a standard supply request form can be stored in an organizational forms library or a form used to report vacation time etc.

    Why to use Organizational Forms Library?

    If we publish the forms at Organizational forms library it will used throughout the enterprise-wide. Org. forms library acts as the centralized library or repository. Saving to this library provides a quick and easy way to distribute and update forms.

    How to use the forms enterprise-wise or throughout the organization?

    • You must publish a form to this library if you want to make the form available to everyone in your organization.
    • You can publish a form to the Organizational Forms Library when you want to use the same custom form in more than one folder.
    • This library is frequently used for e-mail message forms because they are typically not based on a specific folder.
    • When you publish a form, you can maintain only a single published form.
    • Everyone in the organization can access the forms that are published to this library as long as the administrator grants the users permissions to the library.

    Where these libraries stored in Exchange?

    Exchange stores these libraries in the EFORMS REGISTRY system folder.

    Note: In Exchange Server 2003, you can only create organizational forms libraries in the system folders subtree of the Public Folders tree. Even if you have created new public folder hierarchies to work with the organizational forms libraries, only the Public Folders tree supports the EFORMS REGISTRY system folder.

    What are the permissions required to view or use this?

    Org. forms library is stored on the Microsoft Exchange Server-based computer. The administrator must give you permissions to publish to the Organizational Forms Library. This permission is typically given to only some individuals or a department that manages the Exchange server-based computer

    Note: You can't publish forms to the Organizational Forms library unless the systems administrator grants you permission.

    Multi-languages support for Organizational Forms Library?

    • Organizational Forms libraries provides supports for multi-languages.
    • When you create an organizational forms library, you assign a language to it. You can have only one organizational forms library for each language.
    • When you use the Forms Administrator to create Organizational Forms Libraries, you must consider the different languages that clients use to access those libraries.
  • Le Café Central de DeVa

    Microsoft Learning’s limited time offer – Second shot can save 25% more

    • 0 Comments

    Second Shot now offers two incentives to get certified!

    Today, Second Shot provides the benefit of a free retake if you fail a Microsoft Certification exam.

    From October 15 – December 31, 2008, you will also be rewarded for passing the exam!

    If you pass, you can now use the Second Shot offer to enjoy 25% off a different exam!

     


    The Offer – 3-easy steps :

    1. Register for Second Shot offer and sit for the exam by December 31, 2008!

    2. If you fail the exam you will receive a free retake exam that can be utilized until June 30, 2008

    3. If you Pass, you will get 25% off a second exam.  You have until February 28, 2009 to utilize the discounted exam.  

     

    Note: If you pass the first exam but fail your 25% off second exam, you will not get a free retake on your second exam.


    For more details, please visit http://www.microsoft.com/learning/mcp/offers/secondshot/default.mspx

Page 1 of 4 (35 items) 1234