Thank you Rui and Pavel for your responses they were really helpful
Here's what I did
In my NewsletterEvents.SubscriberUnsubscribes.Execute
event I removed the subscriber from the newsletter's recipients and that meant that when they 'resubscribed' the SubscriberNewsletterInfo.TYPEINFO.Events.Insert.Before
event got fired.
private void Subscriber_Unsubscribes(object sender, UnsubscriptionEventArgs e)
{
// check the newsletter id
if (e.Newsletter.NewsletterID == 3)
{
// delete newsletter subscription so that if they resubscribe that event gets fired
// Get the subscriber
SubscriberInfo subscriber = SubscriberInfoProvider.GetSubscriberByEmail(e.Email, SiteContext.CurrentSiteID);
if (subscriber != null)
{
// Prepare an instance of the Kentico email feed subscription service
ISubscriptionService subscriptionService = CMS.Core.Service<ISubscriptionService>.Entry();
// Remove the subscriber from the newsletter's recipients
subscriptionService.RemoveSubscription(subscriber.SubscriberID, e.Newsletter.NewsletterID, sendConfirmationEmail: false);
}
}
}