Have you played with Eloqua’s Email API yet? Eloqua’s SOAP API exposes operations for sending and tracking email messages. It also provides endpoints for creating emails, editing content and configuring details such as the sender and recipient lists. In this post, we’ll demonstrate a very basic use-case that uses this service to create an Email and send it to a list of recipients.
If you're working with Eloqua 10, please see the following post on Sending Emails using the REST API.
Please note that you’ll need to have API access and should be familiar with how to connect with the Eloqua SOAP API. For documentation and additional details please see the Email Service API Overview.
Developers can use this web service to build applications that perform tasks such as displaying, composing and sending emails. As an example, consumers could leverage the API to create their own Eloqua Email Editor.
We’re starting with the basics in this post. The following code sample demonstrates how to create and send an Email via the SOAP API. Please note that you will need to add a service reference to the Email Service WSDL in your application.
Email Service WSDL : https://secure.eloqua.com/API/1.2/EmailService.svc
Sample code c#
// Instantiate a new instance of the Email client EmailServiceClient emailClient = new EmailServiceClient(); // Set your API user credentials emailClient.ClientCredentials.UserName.UserName = @"ClientName\UserName"; emailClient.ClientCredentials.UserName.Password = "xxxxx"; // Set the email details EmailDetails email = new EmailDetails { BouncebackAddress = "admin@eloqua.com", Name = "Email Service Client - Sample Code", FromAddress = "", FromName = "", ReplyToAddress = "", ReplyToName = "", NeverExpires = true, SendToUnsubscribes = false, HtmlContent = "<html><body></body></html>", TextContent = "", AutoGenerateTextContent = true, Subject = "Email Service Client - Sample Code", Tracked = true, SendHtml = true, HeaderId = 106, // see endpoints for listing Headers FooterId = 3, // see endpoints for listing Footers EncodingId = 1, GroupId = 1, }; try { // Invoke a service request to create the Email email.Id = emailClient.CreateHtmlEmail(email); // Update the Email's content email.HtmlContent = "<html><body>Updated Content</body></html>"; // Invoke a service request to update the Email emailClient.UpdateHtmlEmail(email); } catch (Exception ex) { Console.WriteLine(ex.Message); } // Configure the Email deployment settings DeploymentSettings settings = new DeploymentSettings { Name = "Deployment Settings - Sample", EmailId = email.Id, AllowResend = false, DistributionListId = 1, NotificationEmailAddress = "fred.sakr@eloqua.com", SignatureRuleId = 3, SendOnBehalfOfUser = "fred.sakr@eloqua.com", AllowSendToBouncebacked = false, AllowSendToUnsubscribed = false, AllowSendToEmailGroupUnsubscribed = false, AllowSendToMasterExcludeList = false, }; try { // Deploy the Email Deployment deploy = emailClient.Deploy(settings); // Retrieve the state deploy = emailClient.GetDeployment(deploy.Id); // Write your own custom code to poll the API and verify the state of the deployment Console.WriteLine(deploy.State); } catch (Exception ex) { Console.WriteLine(ex.Message); }