Thursday 21 February 2019

shared mailbox

What is a shared mailbox?

A shared mailbox is an inbox that allows multiple people to send and receive email from the same address. This is great for a company that might want to share the load of responding to customer inquiries, for example. Any member of the shared mailbox may respond to an email sent to the shared address. And any response will appear as if sent from the shared mailbox address, rather than the individual person.
Say Molly sets up questions@mollysbarkandwine.com, and adds her partners, Jane and Paul, as members. Whenever any of the three reply to a questions@ email, the response will come from questions@mollysbarkandwine.com, instead of from Molly, Jane, or Paul’s individual email addresses.
Because a shared mailbox is an entire inbox, the members have a common calendar, and contacts list. A shared mailbox allows a certain amount of email storage, without needing to pay more.
A shared mailbox technically has no owner, and it doesn't have its own password. So, members aren't able to log in to the shared mailbox, directly. The admin has to add you as a member of the shared mailbox, and then you can access it, either online or through an email client.

 Easy way to understand : 
 ****A distribution group***
         1. Has owners
         2. delivery management(just only inside or both outside)
         3. not provide a common calendar
         4. membership approval (add new member by owner...)

 ****A shared mailbox***
         1. no has owners
         2. sender is everyone
         3. provide a common calendar
         4. When a person in the group replies to a message sent to the shared mailbox, the email appears to be from the shared mailbox, not from the individual user.


More : 

In summary, the most difference is that a shared mailbox has mailboxes, while a distribution group doesn’t .
The main reason to use distribution groups is as follows:
1. They make it easy to send an email message to lots of people at once.
2. They help people inside and outside your organization communicate and collaborate more easily. You can specify which users in your organization can send email to a distribution group. You can also specify whether users outside of your organization can send email to a distribution group.
3. If you or someone in your organization sends email to a lot of users at once, you can choose to send to a distribution group, so you  won’t exceed the maximum number of recipients per message.
The possible reason to use shared mailboxes is as follows:
Shared mailboxes are a great way to handle customer email questions because several people in your organization can share the responsibility of monitoring the mailbox and responding to the questions. Your customer questions get quicker answers, and related emails are all stored in one mailbox.
Note: If a member wants to use a shared mailbox, the member  needs a permission of Full Access. What’s more, the  storage of a shared mailbox is 50GB, while, the maximum number  of distribution group users is 100,000.

Thursday 7 February 2019

Connect to CRM via a console application for CRM 2013,2015,2016

Connect to CRM via a console application


Connect to CRM via a console application.

If you are writing some complicated business logic inside your custom workflow activity or a plugin there is a high chance of your code throwing exception once you have registered them and started testing.

What I do is I create a simple Visual Studio C# console application and connect to CRM. Then debug the business logic in the console application first and make sure everything is working well before I insert the code into the plugin or workflow activity skeleton. This saves lot of time as debugging plugins and custom workflow activities is not very straight forward.

Creating a Console application is very easy and once created you can use it for multiple projects as you need to change only few variables.

Step 1:
Open visual studio and create a new project of type Console Application as below:

 


Step 2:
Under solution explorer right click on the project created and click properties. Then under the Application tab change the Target Framework to .Net Framework 4.5.2
If you don’t have this version of .net installed in your computer download it from Microsoft site and install.


















Step 3:
Refer the following assemblies. CRM dlls can be found under the bin folder in CRM SDK. You can download the SDK from Microsoft site.

























Update your Program.cs class like below.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;
using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
using Microsoft.Xrm.Sdk.Query;

namespace CRM2016ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        { 
            #region credentials
            string SoapOrgServiceUri ="https://CRMUrl/OrganizationName/XRMServices/2011/Organization.svc";
            ClientCredentials credentials = new ClientCredentials();
            credentials.UserName.UserName = "username";
            credentials.UserName.Password = "password";
            #endregion                     

            Uri serviceUri = new Uri(SoapOrgServiceUri);
            OrganizationServiceProxy proxy = newOrganizationServiceProxy(serviceUri, null, credentials, null);
            proxy.EnableProxyTypes();
            IOrganizationService orgService = (IOrganizationService)proxy;
            XrmServiceContext serviceContext = new XrmServiceContext(orgService);

        }
    }
}


Update username, password and crm url.




Now you have OrganizationService instance and if you have built your early bound classes then you have access to the ServiceContext too. In this example they are orgService and serviceContext respectively.

Now you can build your CRM queries with hard coded GUIDs to test your business logic. Once all tested and good to go move them to your plugins. J



Git Basic working

  Develop = dev   r