+
+def subscribe_form(request):
+    if request.POST:
+        form = SubscribeForm(request.POST)
+        if form.is_valid():
+            form.save()
+            return HttpResponseRedirect(reverse('subscribed'))
+    else:
+        form = SubscribeForm()
+    return render(request, 'newsletter/subscribe_form.html', {
+        'page_title': _(u'Subscribe To Newsletter'),
+        'form': form,
+    })
+
+
+def subscribed(request):
+    return render(request, 'newsletter/subscribed.html', {
+        'page_title': _(u'Confirmation link sent'),
+    })
+
+
+def check_subscription(subscription, hashcode):
+    if hashcode != subscription.hashcode():
+        raise Http404
+
+
+def confirm_subscription(request, subscription_id, hashcode):
+    subscription = get_object_or_404(Subscription, id=subscription_id)
+    check_subscription(subscription, hashcode)
+    subscription.active = True
+    subscription.save()
+    return render(request, 'newsletter/confirm_subscription.html', {
+        'page_title': _(u'Subscription confirmed')
+    })
+
+
+def unsubscribe_form(request):
+    if request.POST:
+        form = UnsubscribeForm(request.POST)
+        if form.is_valid():
+            form.save()
+            return HttpResponseRedirect(reverse('unsubscribed'))
+    else:
+        form = UnsubscribeForm()
+    return render(request, 'newsletter/unsubscribe_form.html', {