Gianni Mariani wrote:

a) This one is serious because emails are dropped silently. If "dbmail-smtp -m BOX" is used and BOX does not exist, then the email is silently dropped on the floor.

This IS serious. I'm also quite sure this didn't occur in earlier releases. IMO delivery should fallback to INBOX should -m BOX specify a non-existant mailbox.

This is fixed in the debian packages.


b) If an account exists but the mailbox does not, there should be a way of creating one on demand. For example, if I create an alias like:

test_dbmail: "| /usr/local/sbin/dbmail-smtp -m test_dbmail -u gianni"

If the mailbox "test_dbmail" in account "gianni" does not exist, (before the patch it would silently fail) it will abort. I suggest that another command line option "-c" for "Create mailbox on demand" would be good.

Some patches to remedy this have floated by on the list. None of those made it into CVS, alas. Personally I think this belongs in dbmail.conf

c) If the postgresql database goes down, imapd does not recover when the database comes back and requires a re-start of dbmail-imapd. It would be nice if dbmail-imapd recovered from database re-starts.

Mmm. I'm pretty sure this works as expected for mysql. Restarting/reconnecting the client will probably also fix your problem.

d) imaps (imap over SSL) would really be nice.

Use stunnel for now.

e) passwords should not be logged .... this is far more serious than you first think.

Set the TRACE_LEVEL's to 0 in dbmail.conf. But I fully agree; It should NEVER be logged.

f) scrubbing the database really need a cron job ? (reminds me - I need to check to see if it the
dbmail-maintenance does a VACUUM;).

It does when you use -c

Also, remember to apply extra indices and contraints to your tables.

For postgres you could use:


create index name_idx on mailboxes(name);
create index owner_id_idx on mailboxes(owner_idnr);
create index is_subscribed_idx on mailboxes(is_subscribed);
create index mailbox_id_idx on messages(mailbox_idnr);
create index seen_flag_idx on messages(seen_flag);
create index unique_id_idx on messages(unique_id);
create index status_idx on messages(status);





alter table messages add foreign key (mailbox_idnr) references
  mailboxes(mailbox_idnr) on delete cascade;
alter table mailboxes add foreign key (owner_idnr) references
  users(user_idnr) on delete cascade;
alter table messageblks add foreign key (message_idnr) references
  messages(message_idnr) on delete cascade;

Esp the indices will improve performance dramatically under anything more than trivial loads. The contraints are just for good dba meassure. A full dbmail-maintenance run will also provide the same functionality.


g) There should be an config value to use a different port for connecting to postgresql. I like to run different version of postgresql on the same machine and I place them on different ports. Currently dbmail only has "host" "db" "user" and "pass" parameters.

Concur. Same goes for mysql.

I'm now looking for some migration tools, any suggestions welcome. I would like a few command line tools to mess with imap servers, create mailboxes, transfer emails between boxes etc.

I've used the toolset from uw-imapd myself (imapxfer now called mailutil from the uw-imap package) for moving stuff from one imap server to another.

--
  ________________________________________________________________
  Paul Stevens                                  mailto:[EMAIL PROTECTED]
  NET FACILITIES GROUP                     PGP: finger [EMAIL PROTECTED]
  The Netherlands________________________________http://www.nfg.nl

Reply via email to