Stream of consciousness notes follow. This is what happened to me When giving it the once-over.

Install

On a brand new install -
Got the module, installed, got the warning.
Got the modules, installed.
Went to administer/email newsletters, got database warning
Installed database. Got different warning.
Read readme :-B . Installed combined databases.

Config

Viewed configuration. Tweaked a bit. Mostly made sense. Could do with an overview of what exactly is going to happen.
Viewed 'newsletters'. Tried to add one. Mostly intuative settings there.

Got Error:
warning: array_intersect(): Argument #1 is not an array in /home/webspace/drupal-4.6.3/modules/enewsletter/enewsletter.module on line 156.
[ At least one term must be selected. ]

.. Hm. 'Term', what term?
... I guess that means the things that would be in the 'Content' box.
Brand new install :-D I have no content yet.

Right. So I create myself a taxonomy ("Project Management" vocab terms FYI)
And add 6 or seven stories - categorized outstanding issues.
I go back to updating the newsletter (called "Project Status" - for everyone interested in what's being done)
Feeling pretty intuative so far.
Unsure what effect the 'add to newsletter checkbox on the story edit page will have - if I don't set it, I guess that the newsletter will not include it. Not quite what I wanted, but a handy option I guess.

Going to send, and I see although I can 'set content' that just means select terms, And then I can 'send now'.
Um, what happened to 'Preview before send'???

Never mind. I Guess I'd better add at least one subscriber about now.
Nice to have the subscription option on the register page!

Dunno if I really need the 'email subscriptions' on two pages. Newsletter list AND preferences. They could really be combined, even with the multiple terms collation boxes. I guess it's a convenience thing for the form handling.

Testing

Ready to go? Send Now.
Maybe. Cron, cron, Oh yeah, I'll ping cron.php.
Fatal error: Call to undefined function: imap_open() in /home/webspace/drupal-4.6.3/modules/bounced_email/bounced_email.module on line 57
This is undoubtedly my vanilla installation missing something ... but what?
OK, it's unlikely that a live system would NOT have imap, but for the record,
http://php.net/manual/en/ref.imap.php
...
So I can add

[php.ini]
extension=imap.so

...( Can't see how I'd insert it in apache.conf)

OR enable it dynamically in the code

if (!extension_loaded('imap')) {
	if (!dl('imap.so')) {
		drupal_set_message("imap php extension unavailable. Cannot do email stuff until this is fixed on the server");
	}
}

aand ... oh shit. My sandbox doesn't have it at all. About now I wish it was using PEAR:Mail

Oh nice! Theres some help hooks for this module.
Oh great. Typical bloody help pages - tells me nothing. Do NOT impliment extended help hooks unless the help is indeed extended beyond the module name. Please.

... so I do some tracking by hand. See the imap is only needed for return mail handling , the real send is done just using php mail() ... hm.
Ignore this for now and find what happened. My SMTP setting probably need work.

See if it went out anyway - check the mail for my dummy subscriber account. Nope.
I guess the imap error died before the mailout went? Should I turn off the bounced_email_cron?
Best result is just for bounced_email.module to check for imap support.
So:

function bounced_email_cron() {
	if(!extension_loaded('imap')){watchdog('bounced_email', t('bounced_email module (enewsletter) cannot check for returned mail as there is no imap support on this server')); return FALSE; }

... That worked!
And resend newsletter. And re-run cron. (A 'run cron now' button would be convenient here. In many Drupal modules in fact)
And check email. And it's here!

Re-testing

Damn that text-only version is ugly.

Change my user prefs, re-send, re-cron.
Is it just being extremely clever and not sending stuff I've already seen (cool) or have I broken something...
Just adding a new story is not enough to bump it.
Added some watchdog debug to enewsletter_send_receive to follow its logic... Note that email has been sent

Unsubscribing & resubscribing didn't work. Adding a new user and checking that email didn't work.
Bugger - How do I make that work? I know it's just for testing, but where is a reset button?
Deleted Newsletter and made a new one. And subscribed to it, and got it, and ... it's text again.
Delete, Create, Subscribe SET HTML, Send, Cron, Wait, Check Mail (You see why I wanted a 'preview'?)

Thoughts

Right - I have something to go on now.
I hope you find this stream-of-consciousness feedback at least a little helpful on what bits could be improved.
Namely :

  • a conceptual overview of how this works, gathering topics etc
    The "Newsletter" is not a single entity, it's just a collection of teasers.
    Hm, can't I add a customized introduction at least (and I don't mean by editing the template)
    ( Investigating reference to $publication->type == 'announcement' )
    It all looks a bit too much like an automated news feed than a 'publication'
    Perhaps I should try that other module.
  • a 'preview' before sending (Feature Request)
  • a little checking of the install environment (usual user testing sort of issue)

Other things that my client wants today are:

  • clickthrough logs (which I may impliment myself, possibly integrating closer to Drupal user activity monitoring)
    That userid hash may be handy for that.
  • I also can't see sent newsletter logging, just for tracking ... and stuff.
    Not vital right now ... assuming it works, but I'd like to see it If I need to debug!
    Even a note in watchdog would be a start!

Cheers, .dan.

Comments

robert castelo’s picture

Great feedback!

Many thanks Dan.

I'm going to be at the Linux World 2005 Expo for the next two days. I'll send you a detailed reply at the weekend.

robert castelo’s picture

Status: Active » Fixed

Some of these issues/features were fixed or implemented, the rest are lost in this long post, feel free to repost them - one issue or feature request at a time please.

robert castelo’s picture

Status: Fixed » Closed (fixed)