I'm working off your C# API, and have hit a slight snag.
Registering a user is fine.
"Deleting" the user is fine.
If you try register the same user, the code
IList<Contact> list = Utility.SearchContactByEmail(AuthenticationData, emailAddress, out nextChunkId);
if (list.Count == 0)
// Add Contact Here
Finds the contact's E-Mail address in the "Removed Contacts" list, and so cannot re-add the contact.
If I try to skip this step, I end off with a lovely: "The remote server returned an error: (409) Conflict." - Most likely since the e-mail address already exists...
Is there any way around this?
It looks like you may have found a limitation with our sample code. The action you are taking is what we refer to as resubscribing an Opted Out contact. This action, to remain in compliance with US CAN-SPAM laws, should only be taken with an explicit request from the contact being opted back in.
You would need to modify the logic check that is looking to see if the contact belongs to 1 or more lists as an opted out contact will never have list memberships. This change would require you to check the Status node of the returned contact instead of list membership. I would need to dig through the code to see how that information is stored, however it should be inside of the contact. If the status is Do Not Mail, you would need to do an Update with the Action set to "ACTION_BY_CONTACT" to add them back in.
Please keep in mind that any abuse of our API to opt back in unsubscribed contacts without their explicit request is against both our Terms & Conditions and the CAN-SPAM laws.