Re: [Dovecot] Sieve problems (not matching emails expected to match)
Problem solved. Apparently this comment in my lda configuration lied. protocol lda { # Space separated list of plugins to load (default is global mail_plugins). # mail_plugins = $mail_plugins } I had to set this to protocol lda { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins sieve } despite the fact that mail_plugins includes sieve. -- Michael Welsh Duggan (m...@md5i.com)
Re: [Dovecot] dovecot authentication Local + MySQL
I did not read all, but i guess you are lokking for this http://wiki2.dovecot.org/Authentication/MultipleDatabases Hope it will help you. []'sf.rique On Fri, Mar 18, 2011 at 7:51 AM, PARTH MONGA wrote: > Hi Friends > > I am facing an issue with dovecot configuration and i am describing it in a > nutshell. > > We have a dovecot setup under ultramonkey load balancer and in > loadbalancer > we have a check defined for pop service which queries mysqldatabase for a > particular user name/password after every 2 minutes to check if service is > live or not.. > Things are fine till here . > Now The catch is if somehow that particular user info(either password or > username) is mistakenly changed in mysql database whole of my pop gets down > beacuse load balancer cant login and that is a single point of failure in > my setup . > > Now what i want is > I want to know if there is any method that i can setup in dovecot to lookup > for a user locally first and then go for a remote search for the user( ie > in > mysql database) > So that we get the user searched locally before querying the mysql > database > Local + mysql database authetication i want to be in parallel with each > other. > > Please show some light on this . > > Thanks and Regards > Parth Monga >
Re: [Dovecot] Sieve problems (not matching emails expected to match)
Stephan Bosch writes: > Op 20-3-2011 8:12, Michael Welsh Duggan schreef: >> I have a sieve file that reads like this: >> >> require "fileinto"; >> >> # Emacs >> if header :contains "List-Id" "emacs-devel.gnu.org" >> { >> fileinto "mail.emacs-devel"; >> } >> elsif header :contains "List-Id" "emacs-bidi.gnu.org" >> { >> fileinto "mail.emacs-bidi"; >> } >> ... >> >> Unfortunately the List-Id based lines don't appear to be working, >> although some other ones do. The attached test message does not get >> delivered to the mail.emacs-devel list. Why? > > Do those folders exist? Do the logs report anything? The folders do exist. The logs from sending a message look like this: Mar 20 16:34:38 maru dovecot: lda(md5i): Debug: Effective uid=1000, gid=8, home=/home/md5i Mar 20 16:34:38 maru dovecot: lda(md5i): Debug: maildir: root exists (/home/md5i/Maildir) Mar 20 16:34:38 maru dovecot: lda(md5i): Debug: maildir++: root=/home/md5i/Maildir, index=, control=, inbox=/home/md5i/Maildir Mar 20 16:34:38 maru dovecot: lda(md5i): Debug: userdb lookup skipped, username taken from USER environment Mar 20 16:34:38 maru dovecot: lda(md5i): Debug: none: root=, index=, control=, inbox= Mar 20 16:34:38 maru dovecot: lda(md5i): msgid=<87bp151qg6@maru.md5i.com>: saved mail to INBOX Should there be log messages related to sieve here? If so, maybe sieve is not running at all? If so, what am I doing incorrectly? sieve is part of mail_plugins. -- Michael Welsh Duggan (m...@md5i.com)
Re: [Dovecot] Sieve problems (not matching emails expected to match)
Op 20-3-2011 8:12, Michael Welsh Duggan schreef: I have a sieve file that reads like this: require "fileinto"; # Emacs if header :contains "List-Id" "emacs-devel.gnu.org" { fileinto "mail.emacs-devel"; } elsif header :contains "List-Id" "emacs-bidi.gnu.org" { fileinto "mail.emacs-bidi"; } ... Unfortunately the List-Id based lines don't appear to be working, although some other ones do. The attached test message does not get delivered to the mail.emacs-devel list. Why? Do those folders exist? Do the logs report anything? Regards, Stephan.
Re: [Dovecot] Sieve problems (not matching emails expected to match)
Michael Welsh Duggan writes: > I have a sieve file that reads like this: > > require "fileinto"; > > # Emacs > if header :contains "List-Id" "emacs-devel.gnu.org" > { > fileinto "mail.emacs-devel"; > } > elsif header :contains "List-Id" "emacs-bidi.gnu.org" > { > fileinto "mail.emacs-bidi"; > } > ... > > Unfortunately the List-Id based lines don't appear to be working, > although some other ones do. The attached test message does not get > delivered to the mail.emacs-devel list. Why? Okay, more data. When running sieve using sieve-test, I get the results I expect. I cannot figure out why it works in situ, but does not work from dovecot. Here is my doveconf -n output: # 2.0.11: /etc/dovecot/dovecot.conf # OS: Linux 2.6.35 i686 Debian wheezy/sid managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date passdb { driver = pam } plugin/sieve = ~/.dovecot.sieve plugin/sieve_dir = ~/sieve protocols = " imap sieve" service managesieve-login { inet_listener sieve { port = 4190 } } ssl_cert =
[Dovecot] Strange Dovecot Issue
Greetings, I am trying to copy email from one server to another server using Thunderbird. The old server is a closed source ModusMail server and the new server is a Qmail server running Dovecot 1.2.3 (yes, I realize this is behind the times a bit). My issue is this: Whenever Thunderbird gets to a message that has been forwarded (has the forward flag set) an error is generated from the new server (dovecot) that it does not know how to handle the forward flag. Is this a known issue or is it simply that my version of Dovecot is behind? Thanks, Scott
Re: [Dovecot] Question about "extracting" unwanted e-mails from mdbox
On Dom, 2011-03-20 at 14:31 +, Maria Arrea wrote: > Imagine the following scenario > > Last Saturday, 3:00 AM a big phishing attack hits our e-mail inboxes. > Spamassassin does not mark them as spam, and our 50.000+ users have in their > mdbox a very credible phishing attack. What doveadm-fu could I use to delete > (or move to spam) that e-mail from each user INBOX (let´s imagine the Subject > or a Header is known)? > > I repeat: already delivered e-mail, how to filter/prune it. > You can use doveadm expunge: http://wiki2.dovecot.org/Tools/Doveadm/Expunge Search query: http://wiki2.dovecot.org/Tools/Doveadm/SearchQuery Try first on a single mailbox, of course. -- Jose Celestino | http://japc.uncovering.org/files/japc-pgpkey.asc "Assumption is the Mother of Screw-Up" -- Mr. John Elwood Hale
Re: [Dovecot] Question about "extracting" unwanted e-mails from mdbox
On 03/20/2011 07:31 AM, Maria Arrea wrote: Imagine the following scenario Last Saturday, 3:00 AM a big phishing attack hits our e-mail inboxes. Spamassassin does not mark them as spam, and our 50.000+ users have in their mdbox a very credible phishing attack. What doveadm-fu could I use to delete (or move to spam) that e-mail from each user INBOX (let´s imagine the Subject or a Header is known)? I repeat: already delivered e-mail, how to filter/prune it. Regards Maria Which type of mailbox? -- -Eric 'shubes'
[Dovecot] Question about "extracting" unwanted e-mails from mdbox
Imagine the following scenario Last Saturday, 3:00 AM a big phishing attack hits our e-mail inboxes. Spamassassin does not mark them as spam, and our 50.000+ users have in their mdbox a very credible phishing attack. What doveadm-fu could I use to delete (or move to spam) that e-mail from each user INBOX (let´s imagine the Subject or a Header is known)? I repeat: already delivered e-mail, how to filter/prune it. Regards Maria
Re: [Dovecot] remove old files
On 03/18/2011 02:16 PM Stéphane Guedon wrote: > Hello > > I use the dovecot 2.0.10 server and wonder how to clean up correctly the old > mails (especially for spam folder). > > I use maildir storage, and wonder if deleting files with an rm and file > command > combinaison would be good or would corrupt indexes files/whatever. > > for exemple, the spam folder is in ~/.mail/.INBOX.spam/ > > Thus, can I "cd ~/.mail/.INBOX.spam/ && rm 'files older than 2 months' " or > something else ? > > Thanks. Have a look at: http://wiki2.dovecot.org/Tools/Doveadm/Expunge Regards, Pascal -- The trapper recommends today: decade.1107...@localdomain.org
[Dovecot] remove old files
Hello I use the dovecot 2.0.10 server and wonder how to clean up correctly the old mails (especially for spam folder). I use maildir storage, and wonder if deleting files with an rm and file command combinaison would be good or would corrupt indexes files/whatever. for exemple, the spam folder is in ~/.mail/.INBOX.spam/ Thus, can I "cd ~/.mail/.INBOX.spam/ && rm 'files older than 2 months' " or something else ? Thanks. -- Stéphane Guedon page web : http://www.22decembre.eu/ carte de visite : http://www.22decembre.eu/downloads/Stephane-Guedon.vcf clé publique gpg : http://www.22decembre.eu/downloads/Stephane-Guedon.asc signature.asc Description: This is a digitally signed message part.
[Dovecot] dovecot authentication Local + MySQL
Hi Friends I am facing an issue with dovecot configuration and i am describing it in a nutshell. We have a dovecot setup under ultramonkey load balancer and in loadbalancer we have a check defined for pop service which queries mysqldatabase for a particular user name/password after every 2 minutes to check if service is live or not.. Things are fine till here . Now The catch is if somehow that particular user info(either password or username) is mistakenly changed in mysql database whole of my pop gets down beacuse load balancer cant login and that is a single point of failure in my setup . Now what i want is I want to know if there is any method that i can setup in dovecot to lookup for a user locally first and then go for a remote search for the user( ie in mysql database) So that we get the user searched locally before querying the mysql database Local + mysql database authetication i want to be in parallel with each other. Please show some light on this . Thanks and Regards Parth Monga
Re: [Dovecot] Problem with expire plugin and expunge
Hello, > > Big surprise: Something bad must have happened after the messages were > > deleted from Trash; now all messages are zero days old. > > Are you using maildir? Did you run with those patches + mail_debug=yes? Today, the daily cronjob expired some messages. I have attached the output of the job. It seems that the error occurs not when expunging, but when deleting the first message after expunging. Before deleting a message, "doveadm search" showed me messages that were between zero and four days old, but directly after deleting a message, all messages were zero days old. Here is my log entry from when I deleted that message: Mar 18 09:50:28 joseph dovecot: imap(christoph): Debug: expire: Saving first message to Trash, updating timestamp to 1300438228 Regards Christoph /etc/cron.daily/dovecot: doveadm: Debug: Loading modules from directory: /usr/lib/dovecot/modules doveadm: Debug: Module loaded: /usr/lib/dovecot/modules/lib20_expire_plugin.so doveadm: Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm doveadm: Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) doveadm: Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so doveadm: Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message) doveadm: Debug: Skipping module doveadm_zlib_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_zlib_plugin.so: undefined symbol: i_stream_create_deflate (this is usually intentional, so just ignore this message) doveadm: Debug: expire: Searching only users listed in expire database doveadm: Debug: Loading modules from directory: /usr/lib/dovecot/modules doveadm: Debug: Module loaded: /usr/lib/dovecot/modules/lib20_expire_plugin.so doveadm: Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm doveadm: Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) doveadm: Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so doveadm: Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message) doveadm: Debug: Skipping module doveadm_zlib_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_zlib_plugin.so: undefined symbol: i_stream_create_deflate (this is usually intentional, so just ignore this message) doveadm: Debug: expire: Searching only users listed in expire database doveadm(christoph): Debug: auth input: christoph home=/mailhome/vmail/christoph doveadm(christoph): Debug: Effective uid=110, gid=114, home=/mailhome/vmail/christoph doveadm(christoph): Debug: fs: root=/mailhome/vmail/christoph/mdbox, index=, control=, inbox= doveadm(christoph): Debug: Namespace : Using permissions from /mailhome/vmail/christoph/mdbox: mode=0700 gid=-1 doveadm(christoph): Debug: expunge: box=Trash uid=3248 doveadm(christoph): Debug: expunge: box=Trash uid=3249 doveadm(christoph): Debug: expunge: box=Trash uid=3250 doveadm(christoph): Debug: expunge: box=Trash uid=3251 doveadm(christoph): Debug: expunge: box=Trash uid=3252 doveadm(christoph): Debug: expunge: box=Trash uid=3253 doveadm(christoph): Debug: expunge: box=Trash uid=3254 doveadm(christoph): Debug: expunge: box=Trash uid=3255 doveadm(christoph): Debug: expunge: box=Trash uid=3256 doveadm(christoph): Debug: expunge: box=Trash uid=3257 doveadm(christoph): Debug: expunge: box=Trash uid=3258 doveadm(christoph): Debug: expunge: box=Trash uid=3259 doveadm(christoph): Debug: expunge: box=Trash uid=3260 doveadm(christoph): Debug: expunge: box=Trash uid=3261 doveadm(christoph): Debug: expunge: box=Trash uid=3262 doveadm(christoph): Debug: expunge: box=Trash uid=3263 doveadm(christoph): Debug: expunge: box=Trash uid=3264 doveadm(christoph): Debug: expunge: box=Trash uid=3265 doveadm(christoph): Debug: expunge: box=Trash uid=3266 doveadm(christoph): Debug: expunge: box=Trash uid=3267 doveadm(christoph): Debug: expunge: box=Trash uid=3268 doveadm(christoph): Debug: expunge: box=Trash uid=3269 doveadm(christoph): Debug: expunge: box=Trash uid=3270 doveadm(christoph): Debug: expunge: box=Trash uid=3271 doveadm(christoph): Debug: expunge: box=Trash uid=3272 doveadm(christoph): Debug: expunge: box=Trash uid=3273 doveadm(christoph): Debug: expunge: box=Trash uid=3274 doveadm(christoph): Debug: expunge: box=Trash uid=3275 doveadm(christop
[Dovecot] Problem with pam-auth and winbind
Hi I try to use windbind rule to authenticate users in dovecot login procedure. /etc/nsswitch.conf file: passwd: files winbind shadow: files winbind group: files winbind Configuration of the dovecot is follows: log_path: /var/log/dovecot/error.log info_log_path: /var/log/dovecot/info.log protocols: imap imaps pop3 pop3s ssl_cert_file: /etc/pki/tls/certs/dovecot.pem ssl_key_file: /etc/pki/tls/private/dovecot.pem login_dir: /var/run/dovecot/login login_executable(default): /usr/lib64/dovecot/imap-login login_executable(imap): /usr/lib64/dovecot/imap-login login_executable(pop3): /usr/lib64/dovecot/pop3-login mail_executable(default): /usr/lib64/dovecot/imap mail_executable(imap): /usr/lib64/dovecot/imap mail_executable(pop3): /usr/lib64/dovecot/pop3 mail_plugin_dir(default): /usr/lib64/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib64/dovecot/modules/imap mail_plugin_dir(pop3): /usr/lib64/dovecot/modules/pop3 auth default: mechanisms: plain login use_winbind: yes passdb: driver: pam args: dovecot userdb: driver: passwd socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix and configuration of the /etc/pam.d/dovecot is follows: #%PAM-1.0 auth required pam_env.so debug auth sufficient pam_winbind.so #auth sufficient pam_unix.so likeauth nullok use_first_pass auth required pam_deny.so # when I try logon from my console: # telnet komp14 110 Trying 10.10.10.38... Connected to komp.xxx.xxx (10.10.10.38). Escape character is '^]'. +OK Dovecot ready. user tt1 +OK pass x -ERR Authentication failed. quit +OK Logging out Connection closed by foreign host. Of course password is corret becouse #wbinfo -K tt1 Enter tt1's password: plaintext kerberos password authentication for [tt1] succeeded (requesting cctype: FILE) credentials were put in: FILE:/tmp/krb5cc_0 In the logs files I can find coresponding to the telnet command to dovecot: /var/log/auth.log Mar 14 09:43:22 komp14 dovecot-auth: pam_winbind(dovecot:auth): getting password (0x) Mar 14 09:43:22 komp14 dovecot-auth: pam_winbind(dovecot:auth): user 'tt1' granted access /var/log/dovecot/info.log Mar 14 09:43:29 pop3-login: Info: Aborted login (auth failed, 1 attempts): user=, method=PLAIN, rip=10.10.10.38, lip=10.10.10.38, secured I'll be apreciate for any hints. but in /var/log/dovecot/error.log we have information: Mar 14 09:43:29 auth-worker(default): Error: pam(tt1,10.10.10.38): pam_acct_mgmt() failed: Authentication failure This test was done with windbindd Version 3.5.3. When I test it on another machine with windbind Version 3.0.24 (config file are the same) authentication prosess is done properly. Any HINTS
Re: [Dovecot] dovecot LDA: "temporary failure"
Forget it. I must have been crosseyed. Someone had put the log file in a non-standard place /home/vmail/dovecot-deliver.log. It told all. A plugin cmusieve was not found, possibly depreciated? I learned how to make the deliver command line work. ;) Sorry, David Koski dko...@sutinen.com > Additional information: > > I created a script to get the return code from deliver: > > 1 #!/bin/bash > 2 > 3 cat "cur/1300037582.P7332Q0M221160.brusco-mail:2,S" | > /usr/lib/dovecot/deliver -f dko...@somedomain.com -d > dko...@domainhidden.com 4 > 5 case $? in > 6 0) echo "0" > 7 ;; > 8 64) echo "64" > 9 ;; > 10 67) echo "67" > 11 ;; > 12 78) echo "78" > 13 ;; > 14 77) echo "77" > 15 ;; > 16 75) echo "75" > 17 ;; > 18 *) echo "unknown" > 19 esac > 20 > > The file it is cat'ing is a valid email in an Maildir/cur file. It returns > 75 (EX_TEMP_FAIL) every time, even run as root. The logs reveal: > > /var/log/dovecot/lda-deliver: > > 2011-03-17 23:35:39 deliver(dko...@somedomain2.com): Info: Loading modules > from directory: /usr/lib/dovecot/modules/lda > > /var/log/dovecot/deliver.info: > (nothing) > > /var/log/dovecot/deliver.err: > (nothing) > > I tried the script on another machine with Dovecot 1.0.15-2.3+lenny1 with > success if I run as root. > > Regards, > David Koski > dko...@sutinen.com > > > This really has me stumped and desperate. I upgraded Debian from 5... > >
Re: [Dovecot] dovecot proxy, imapproxy, perdition . . . or?
We use proxy_maybe across several servers handling over 10,000 accounts with no problems. --Original Message-- From: Dennis Guhl Sender: dovecot-bounces+jkrejci=usinternet@dovecot.org To: dovecot@dovecot.org ReplyTo: dovecot@dovecot.org Subject: Re: [Dovecot] dovecot proxy, imapproxy, perdition . . . or? Sent: Mar 19, 2011 4:32 PM On Sat, Mar 19, 2011 at 09:50:15PM +0100, Lorens Kockum wrote: > Hi, > > I have two load-balanced dovecot servers using a single NFS > mount. The version is 1.2.11. I chose this so that if one server [..] > reasons, and also that dovecot has an included proxy, and > that its performance is better than perdition. However on > http://wiki.dovecot.org/HowTo/ImapProxy the feature "IMAP/POP3 > server with proxy feature" is noted as "This model is still a > bit unfinished in current code." > > Is this still true? There's also a general note that "This page > was written quite a long time ago and may not match reality > anymore" . . . I use 1.2.15 from Debian Lennys backports in a proxy configuration for a medium three digit number of users without any problems. Dennis Sent via BlackBerry from T-Mobile
Re: [Dovecot] questions/problems virtual plugin pop3 leave copies on the server for x days then delete / tbs Popstate.dat / looks like solved
Am 18.03.2011 23:39, schrieb Robert Schetterer: > Am 17.03.2011 00:07, schrieb Robert Schetterer: >> Am 16.03.2011 23:52, schrieb Robert Schetterer: >>> Am 16.03.2011 22:59, schrieb Robert Schetterer: Am 16.03.2011 20:56, schrieb Robert Schetterer: > I wonder how POP3 clients would even know how long the mail has been in >> server.. here it is for tb http://kb.mozillazine.org/Popstate.dat >>> >>> ok , i tested a little >>> the popstate.dat files stores what to do >>> with pop3 mail identified by UIDL >>> >>> this tb function looks good on both servers >>> >>> if i.e a mail was deleted from local inbox >>> it gets declared something like >>> d uidl >>> in the popstate.dat >>> >>> the difference between the servers is >>> that in the server without virtual plugin the mail gets in deed deleted >>> at pop3 reconnect >>> >>> sending >>> pop3(...@): expunge: box=INBOX, uid=172, >>> msgid=<4D813935.9070606@>, size=1836 >>> >>> with my virtual plugin setup it isnt deleted >>> cant see any expunge with this tb account >>> >>> miracle i can see onther account ( think he has old netscape ) >>> which sends expunge over pop3 >>> >> >> checked this with outlook 2010 too >> it doesnt work either, see no expunge in log >> >> so the virtual plugin or my setup within simply broke this pop3 features > hi Timo > > i did more debugging, > used telnet with pop3 > the list and dele function are working, > > the problem is based on > that if tb downloads the mail ( with option leave copies on the server ) > mail stays in maildir cur now, but it cant be seen via pop3 list anymore > so its clear, whatever tb sends dele later connect it fails cause the > mail cant be seen via pop3 anymore > for very small tests this looks like solved i have to wait for wide user reaction/test to be sure to see mails via pop3 and leave copies on the server this cant work +RealMails/ RealMails/* -RealMails/Trash -RealMails/Trash/* -RealMails/Sent -RealMails/Sent/* -RealMails/Templates -RealMails/Templates/* -RealMails/Drafts -RealMails/Drafts/* -RealMails/Archives -RealMails/Archives/* unseen it must be +RealMails/ RealMails/* -RealMails/Trash -RealMails/Trash/* -RealMails/Sent -RealMails/Sent/* -RealMails/Templates -RealMails/Templates/* -RealMails/Drafts -RealMails/Drafts/* -RealMails/Archives -RealMails/Archives/* all which is example in the wiki too, but not related special to this pop3 leave copies on the server feature so timos patch worked , also it was a configration/mythinking bug dont know if the patch should be reverted , dont think so cause it looks better to have mails in maildir cur when the got downloaded then in new as it was before -- Best Regards MfG Robert Schetterer Germany/Munich/Bavaria
Re: [Dovecot] Sieve problems (not matching emails expected to match)
Forgot to mention: # 2.0.11: /etc/dovecot/dovecot.conf # OS: Linux 2.6.35 i686 Debian wheezy/sid -- Michael Welsh Duggan (m...@md5i.com)
[Dovecot] Sieve problems (not matching emails expected to match)
I have a sieve file that reads like this: require "fileinto"; # Emacs if header :contains "List-Id" "emacs-devel.gnu.org" { fileinto "mail.emacs-devel"; } elsif header :contains "List-Id" "emacs-bidi.gnu.org" { fileinto "mail.emacs-bidi"; } ... Unfortunately the List-Id based lines don't appear to be working, although some other ones do. The attached test message does not get delivered to the mail.emacs-devel list. Why? --- Begin Message --- -- Michael Welsh Duggan (m...@md5i.com) --- End Message --- -- Michael Welsh Duggan (m...@md5i.com)