Scribe: Email subscriptions for Mango

Have you been waiting for Email subscriptions to be available in Mango blog? Well, wait no longer!

Plugin version:
1.0
Last Updated:
2009-04-08
Requires:
Mango Blog 1.3+, CFSchedule (if sandboxed)
Auto-install URL:
http://fusiongrokker.com/get/Scribe

Scribe does more than just send out some emails when you make a new post:

  • ColdFusion Scheduled tasks are used to make sure emails don't go out before your post is published. Emails are only sent when a new post is published or when a draft becomes published; never when updating an existing published post or when a post is reverted from published status to draft status. (Caveat: published -> draft -> published will trigger a repeat email.)
  • The email messages sent to your readers are customizable with templating on the settings page.
  • Optionally use a custom email address for the FROM address. Defaults to the blog-default email address.
  • There is an unsubscribe link in every email -- if you include it on your template; included by default.
  • The subscribe pod is available for pod-enabled themes, but for users without a pod-enabled theme, a custom event ("scribe-pod") is also available.

I also already have some plans for a 1.1 release, in the near future:

  • Subscription management in admin - view and edit the list of subscribers
  • Optional double-opt-in (require link-click from validation email before subscription is active)

in Mango | My projects Posted 2009-04-10 08:00

29 responses:

Brian Klaas
Brian Klaas 2009-04-10 8:27 AM #
Thanks for creating this plug-in, Adam. It's a great, and much-needed addition to Mango Blog!
Seb Duggan
Seb Duggan 2009-04-10 9:47 AM #
Sorry Adam - just tried subscribing to your site, and it threw an error...

Maybe a problem with rewritten URLs?
Seb Duggan
Seb Duggan 2009-04-10 9:51 AM #
Yeah - it's sending me to /post/generic.cfm (the actual link is "generic.cfm"). Manually altering it to /generic.cfm fixed it...

You'll need to hard-code the blog root into the form target.
Adam
Adam 2009-04-10 9:54 AM #
Seb, thanks! I'll update the SVN and the zip real quick.
Adam
Adam 2009-04-10 10:03 AM #
Ok, fixed that bug. Thanks for the report.
Mark Aplet
Mark Aplet 2009-04-10 1:03 PM #
Awesome Adam! Really looking forward to the 1.1 release. I hope it's sooner than later ;)
David
David 2009-04-10 4:45 PM #
Hi Adam,

I put in a "From Email:" address and the blog email was still used.

Am I missing soemthing, or is this a bug?

Cheers.

David
Adam
Adam 2009-04-10 5:21 PM #
Hi David,

Looks like that's a bug. I'll have it fixed in 1.1.
Josh Swenson
Josh Swenson 2009-04-14 2:30 PM #
Adam,

Thanks so much for your work on this. I've always used cfcblog but liked the slickness of mango better. The only reason I hadn't used mango for any of my clients was the subscribers feature.

Well done.
jax
jax 2009-07-23 3:56 AM #
Seems there's a problem when using Railo and MySql 4.01
Confirmation of subscriptions *always* fail. Looks like there is something funky going on with the sql statement (select 1 as row ...)
jax
jax 2009-07-23 4:38 PM #
Update: Tried it on a CF8 install with MSSQL express 2008. Confirming a subscription leads to a blank page.. and a failed confirmation as well.
Korey
Korey 2009-12-17 8:54 PM #
I'm getting the same issue with CF8 and MySQL 5:

Confirming a subscription leads to a blank page. It appears the following code is not rendering:

if (local.result){
event.data.message.setTitle("Activation Complete");
event.data.message.setData("<p>Your subscription is now active! Thank you!</p>");

When I try to activate again with the link from the email I get the failed activation page. Upon checking the DB, the email is being activated, but I'm not getting the confirmation page.

Any suggestions?
Korey Graham
Korey Graham 2009-12-17 8:57 PM #
Update: I tried subscribing to this blog (fusiongrokker.com) and I'm getting the same blank page when clicking the activation link from the email. Perhaps something was accidentally changed in the last version update?
Adam Tuttle
Adam Tuttle 2009-12-17 9:41 PM #
@Korey Graham Thanks for the bug report. I'll look into it shortly.
David
David 2010-03-26 7:21 AM #
This doesn't seem to work with Railo. Has anyone tested or verified that? It installs nicely, and everything appears to work, the scheduled task is even created in Railo admin, however the only way I get an alert emailed to me is to manually run the scheduled task myself via the CF admin.
Adam
Adam 2010-03-26 8:15 AM #
Hi David, thanks for the bug report. Perhaps there is a difference between the way Scheduled Jobs work in Rail versus Adobe ColdFusion. In ACF, if a job is scheduled for the current time or any time in the past, then it runs immediately. I wonder if that might not be the case with Railo.
Matt
Matt 2010-04-21 4:19 PM #
Adam -
I have a Scribe suggestion (if you're still looking to extend it):

How hard would it be to allow subscribers to pick the Categories to which they want to subscribe? Therefore, they would only be emailed when a Post has been assigned to a category to which they are subscribed.

Thoughts?
Adam
Adam 2010-04-22 9:09 AM #
Matt, thanks for the suggestion. I may consider it at some point.
Matt
Matt 2010-04-26 8:56 AM #
Thanks Adam.

As a follow up question ...

For some reason, subscriber emails stopped going out for me.

Any suggestions on troubleshooting? Logs to look at? Other debugging suggestions?

Many thanks in advance.
Adam
Adam 2010-04-26 9:04 AM #
The first place I would look is Mango's error and warning logs; followed by the CF Administrator mail and error logs. If none of those proves helpful, there are a few more things we can check.
Brandi
Brandi 2011-01-07 11:08 AM #
Any chance that we can mass delete subscribers in an easy manner? I have about 6000 spam addresses who subscribed before I turned on the double opt in. Any workaround the get them out?
Adam
Adam 2011-01-07 11:18 AM #
If you can think of a good UI mechanism for accomplishing that, I would consider adding it. In the meantime, let's think work-around. Roughly how many subscribers do you have that you want to keep? If it is a manageable number, say <50, then it would be pretty easy to write a sql statement to delete "all-but-these":

delete from emailSubscribers where email not in ('email1@example.com','email2@example.com',...)

Another option is to just open the database table and scan through and select+delete the records you don't want. That's pretty easy and quick, if you have access.
Brandi
Brandi 2011-01-07 11:27 AM #
Good ideas - I'll do it that way.
From a UI perspective, multi-select delete or a mass delete option would help so that you don't have to push 'delete' 6000 times!
Adam
Adam 2011-01-07 11:30 AM #
Multi-select will still require checking 6,000 boxes.
David McGraw
David McGraw 2011-01-07 11:35 AM #
Select All like Gmail... Then simply uncheck the good ones...

But this is all band aids for a problem that shouldn't happen, and you should address spammers before you get 6k :) With that said, I wouldn't worry about any major features into the plugin, perhaps an included tool or something??
John O'Brien
John O'Brien 2011-10-21 10:36 PM #
Been trying to get this great plugin up and running...but I can't seem to get the pod to work correctly. If I do a test with my e-mail, the resulting generic.cfm says subscribe successful, but no e-mail is sent. However, if I click unsubscribe, and then re-subscribe (via the generic.cfm result page), the e-mail is sent. I've experienced the same error after changing themes, so not sure what else I could be missing. Has anyone else experienced something like this?
Adam
Adam 2011-10-22 10:45 AM #
John,

Sounds hard to debug. Can you give me more details about your configuration? Are you using double opt-in?
John O'Brien
John O'Brien 2011-10-22 11:17 AM #
Yes, double opt-in was enabled. When I disable double opt-in, the subscribe button works from the pod.

So to rephrase the above... with double opt-in enabled, the pod doesn't generate an e-mail for me when I run a test. However, it will generate one from the link in the resulting generic.cfm.

Leave a comment:

Leave this field empty: