brandonseydel / MailChimp.Net

Mail Chimp 3.0 Wrapper
MIT License
322 stars 179 forks source link
mailchimp mailchimp-api mailchimp-api-v3 mailchimp-api-wrapper mailchimp3

MailChimp.Net - A Mail Chimp 3.0 Wrapper

Backers on Open Collective Sponsors on Open Collective

License

MailChimp.Net is licensed under the MIT license.

Quick Start

Install the NuGet package from the package manager console:

Install-Package MailChimp.Net.V3

Using it in code

using MailChimp.Net;
using MailChimp.Net.Interfaces;

IMailChimpManager manager = new MailChimpManager(apiKey); //if you have it in code

<add key="MailChimpApiKey" value="apiKEY" />
IMailChimpManager manager = new MailChimpManager(); //if you have it in config

Hint: MailChimp needs at least TLS 1.2. To use this library you have to set TLS 1.2 in ServicePointManager

ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12;

Examples

// Instantiate new manager
IMailChimpManager mailChimpManager = new MailChimpManager(apiKey);
Getting all lists:
var mailChimpListCollection = await this.mailChimpManager.Lists.GetAllAsync().ConfigureAwait(false);
Getting 50 Lists:
var mailChimpListCollection = await this.mailChimpManager.Lists.GetAllAsync(new ListRequest
                                                               {
                                                                   Limit = 50
                                                               }).ConfigureAwait(false);
Getting Users from List:
var listId = "TestListId";
await this.mailChimpManager.Members.GetAllAsync(listId).ConfigureAwait(false);
Adding New User To List
var listId = "TestListId";
// Use the Status property if updating an existing member
var member = new Member { EmailAddress = $"githubTestAccount@test.com", StatusIfNew = Status.Subscribed };
member.MergeFields.Add("FNAME", "HOLY");
member.MergeFields.Add("LNAME", "COW");
await this.mailChimpManager.Members.AddOrUpdateAsync(listId, member);
Updating An Existing User
// Get reference to existing user if you don't already have it
var listId = "TestListId";
var members = await this.mailChimpManager.Members.GetAllAsync(listId).ConfigureAwait(false);
var member = members.First(x => x.EmailAddress == "abc@def.com");

// Update the user
member.MergeFields.Add("FNAME", "New first name");
member.MergeFields.Add("LNAME", "New last name");
await this.mailChimpManager.Members.AddOrUpdateAsync(listId, member);
Adding/Removing a Tag From a User
Tags tags = new Tags();
tags.MemberTags.Add(new Tag() { Name = "Awesome Person", Status = "active" });
await this.mailChimpManager.Members.AddTagsAsync(listId, "abc@def.com", tags);

To remove the tag, use "inactive" as the Status.

Status

Progress on full implementation

Total 100%

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! šŸ™ [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]