CRMEmail.Create Method
The Create method creates an e-mail object.
Syntax
[Visual Basic .NET]
Public Function Create(
ByVal Caller As CUserAuth,
ByVal EmailXml As String,
ByVal RecipientsXml As String
) As String
[C#]
public string Create(
CUserAuth Caller,
string EmailXml,
string RecipientsXml
);
[C++]
public: String* Create(
CUserAuth* Caller,
String* EmailXml,
String* RecipientsXml
);
Parameters
Caller
Specifies the identity of the caller. The caller must have the prvCreateActivity privilege to perform this action. See CUserAuth.
EmailXml
Specifies an XML string describing the e-mail object. The XML schema is described by emailactivity.xsd.
RecipientsXml
Specifies an XML string describing the sender and the recipients of the e-mail object. The XML schema is described by activityparty.xsd.
Return Value
Returns a String type that specifies the ID of the new e-mail object.
Remarks
Currently, you must include a partytype within the XML element calendarparty element if you want to map the recipient to an actual object. You must also provide an e-mail address. (See the example below.)
The valid values for the enumeration are as follows:
0 = ordinary recipient (e-mail address only)
1 = account
2 = contact
4 = lead
7 = user
8 = team
[E-mail activity XML data]
<emailactivity>
<messagesubject > Test Email </messagesubject >
<messagebody > Test Email </messagebody >
</emailactivity>
[Recipient XML data]
<activityparties>
<activityparty>
// (Optional. Overriden during creation of the new e-mail object by the e-mail address
// of the specified recipient)
<addressused>angela@adventure-works.com</addressused>
<partyobjecttype> + Microsoft.CRM.Flags.ObjectType.otContact.ToString() + </partyobjecttype>
<partyid>{guid here} </partyid>
<participationtypemask> + Microsoft.CRM.Flags.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString() + </participationtypemask>
</activityparty>
</activityparties>
If there is an error, SOAP throws an exception and the error message is reported in System.Web.Services.Protocols.SoapException.Detail.OuterXml.
All IDs passed to the platform are GUIDs wrapped in braces. For example: {6522D89A-A752-4455-A2B0-51494C6957C3}
Example
[C#]
// strServer should be set with the name of the platform Web server
string strServer = "myservername";
// virtualDirectory should be set with the name of the Microsoft CRM
// virtual directory on the platform Web server
string virtualDirectory = "mscrmservices";
string strDir = "https://" + strServer + "/" + virtualDirectory + "/";
// BizUser proxy object
Microsoft.CRM.Proxy.BizUser bizUser = new Microsoft.CRM.Proxy.BizUser ();
bizUser.Credentials = System.Net.CredentialCache.DefaultCredentials;
bizUser.Url = strDir + "BizUser.srf";
// CRMEmail proxy object
Microsoft.CRM.Proxy.CRMEmail email = new Microsoft.CRM.Proxy.CRMEmail();
email.Credentials = System.Net.CredentialCache.DefaultCredentials;
email.Url = strDir + "CRMEmail.srf";
string strErrorMsg;
string strContactId = "{ECF99EF1-3858-4E06-ABD9-EBFE526BF9FF}";
try
{
Microsoft.CRM.Proxy.CUserAuth userAuth = bizUser.WhoAmI();
// Set up the XML string for the activity
string strActivityXml = "<emailactivity>";
strActivityXml += "<messagesubject> Test Email </messagesubject >";
strActivityXml += "<messagebody> Test Email </messagebody>";
strActivityXml += "<ownerid type=\"" + Microsoft.CRM.Flags.ObjectType.otSystemUser.ToString() +"\">";
strActivityXml += userAuth.UserId + "</ownerid>";
strActivityXml += "</emailactivity >";
// Set up the XML string for the activity parties
string strPartiesXml = "<activityparties>";
strPartiesXml += "<activityparty>";
strPartiesXml += "<addressused >eric@adventure-works.com</addressused >";
strPartiesXml += "<partyobjecttypecode>" + Microsoft.CRM.Flags.ObjectType.otContact.ToString() + "</partyobjecttypecode>";
strPartiesXml += "<partyid>"+ strContactId + "</partyid>";
strPartiesXml += "<participationtypemask>";
strPartiesXml += Microsoft.CRM.Flags.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString();
strPartiesXml += "</participationtypemask>";
strPartiesXml += "</activityparty>";
strPartiesXml += "</activityparties>";
// Create the e-mail object
string strEmailId = email.Create(userAuth, strActivityXml, strPartiesXml);
}
catch (System.Web.Services.Protocols.SoapException err)
{
// Process the platform error here
strErrorMsg = ("ErrorMessage: " + err.Message + " " + err.Detail.OuterXml + " Source: " + err.Source );
}
catch (Exception err)
{
// Process other errors here
strErrorMsg = ("ErrorMessage: " + err.Message );
}
Requirements
Namespace: Microsoft.CRM.Proxy
Assembly: microsoft.crm.proxy.dll
See Also