Re: Question about Sieve and filters
On Wed, 9 Jul 2003, Michael Fair wrote: I totally agree that end users should not be allowed to write their own code. I was thinking that sysadmins could pull from a pool of well known plugins as well as write their own. These would then become valid filters for use in the 'filter :modulename' command at that site. Yes, my idea (ripped from apache): Like in apache we have DSO Support we could have it in sieve too so we don't need re-compile, just restart or so. We have handlers like in these modules, mod_start - pre-load everything needed. mod_handleX - give reference in, process, give status out / rewrite message mod_end - shutdown module where X is 'handletype' We could have even handle_log or something function which is tied to sieve's logging. By there mod_handleX gets username and can lookup example user's own settings for spam-module. If this was too confusing, read abit apache's modules source and you'll understand what I mean :-) filter:mod_foo (available filters comes from AVAILABILITY or something) and we don't have rule 'if it', we just process results in next rule (much nicer) and we can process multiple modules output in same rule instead of making zillion of rules per every mod_*. 1) The only two useful email classifier modules are spam and virus tests. own vacation-module etc, pretty much everything you could write after that. Hello ISP's. 2) The addition or removal of an email classifier should require a recompile of the Sieve server. DSO is answer to this (even if it is 'slower' than static compiled) but we could choose either to compile static or dynamic ofcourse. So those who don't want to recompile always would just use dso-support. However, I completely agree that: 1) The available plugins should not be controlled by the end user. I had never envisioned that this would work that way. End users need to know what filters are available to them, but this not like a web cgi installations where people get to write their own. Yes ofcourse, but user's own settings to that module would be controllable in module-code. 2) There should be an abstraction filter for common stuff like spam and virus checking where sysadmins can change the implementation. Ofcourse people make plugins when proper support is available, see how many modules apache has got ;) I see filters as being used for three things: 1) Email classification (Spam/Virus/Folder group/Site specific class) 2) Email transformation (Wrap Spam in an attachment/Add a header field) 3) Injection into outside systems (Archive a copy/Notify something/SMS) I see more than that what we could do with DSO-plugins. 'filter :module' idea. I do have one other extension to module :myspamtest I think is better. then message would be re-written abit by 'myspamtest' and then: if header :matches Spam Yes { fileinto Spam } if it is kinda pervertic if I say ;) We live in OO-world nowadays, we could say if this :-) ++Titus
Re: Question about Sieve and filters
On Wed, 9 Jul 2003, Michael Fair wrote: I totally agree that end users should not be allowed to write their own code. I was thinking that sysadmins could pull from a pool of well known plugins as well as write their own. These would then become valid filters for use in the 'filter :modulename' command at that site. Yes, my idea (ripped from apache): ... snip ... DSO is answer to this (even if it is 'slower' than static compiled) but we could choose either to compile static or dynamic ofcourse. So those who don't want to recompile always would just use dso-support. As long as the DSO modules remain an implementation specific choice I see no reason they couldn't be implemented this way and I'd be really excited to see such support. However, the main focus that I am driving for at the moment is just getting to something that would be somewhat well received by the time it hit an RFC draft. While I completely agree with you that DSO modules is probably the way to go here and would solve the problem quite nicely, I think it's putting the cart a bit before the horse. I haven't seen any kind of consensus with the exception of you and I that says generic pluggable filters are within the scope and spirit of the language. Don't mean to curb the enthusiasm in anyway, but I just think the conversation of DSO versus system/fork is still a bit premature. 'filter :module' idea. I do have one other extension to module :myspamtest I think is better. module :myspamtest in no tells the user that it is actually doing something. We're looking for something that has the feel of a verb here. Something that says this line will transform the email in some way. then message would be re-written abit by 'myspamtest' and then: if header :matches Spam Yes { fileinto Spam } if it is kinda pervertic if I say ;) We live in OO-world nowadays, we could say if this :-) But Sieve isn't an OO language and this is meaningless in the context of a Sieve script. If anything this refers to the email being processed not the result code/string of a function. While I admit it doesn't jive very well with most traditional programmers, I'd ask don't knock it till you've tried it. Further your example didn't address the whole purpose of introducing it to begin with. it or result is a placeholder variable. Sieve has no variables currently, and many of us have run into the insane code duplication that comes from having to individually enumerate the folders that you want to file your email in. it or result is a place to put those return codes. (Or a function to look them up for the can't have variables purists) So instead of: filter :fileinto; if header :contains ... elsif header :contains ... elsif header :contains ... elsif header :contains ... ... ad nauseum ... You have: filter :fileinto; fileinto result; This simple example could probably be written as: fileinto filter :fileinto; But a slightly more complex script might be: filter :spamtest if result :value le comparator-i;ascii-numeric -30 { filter :sms } elsif result :value ge comparator-i;ascii-numeric 5 { fileinto spam; } fileinto filter :fileinto; This script takes the same result - without modifying the message - and builds a case statement out of it. This kind of variable reuse is really the biggest win I think in argument for this can't of result holding keyword/function. While I certainly am willing to give it up, this doesn't replace the readability of it. What's wrong with result as a replacement for it since it is pervertic? -- Michael --
Re: API to write to lmtp directly
Zitat von Ramprasad A Padmanabhan [EMAIL PROTECTED]: It is not that my server is getting loaded up because of the mails. After I limt the number of concurrent lmtp connections I am able to reduce the db lock errors to a great extent. Now I have set max lmtp processes as 100 , But what will happen if my user mailboxes grow to 4000 from todays 850 then the mails will be delayed forever. By the time there will be the next batch to process. So I thought if there was a way of directly writing to lmtp and to all mailboxes at the same time I will do better You have not read my previous posts? - Reduce the concurrency of lmtp to a low number (2 - 4) because for delivering to one Storage it gains you nothing to use high concurrency. - Don´t use the local transport from postfix because with this you get one recipient per mail deliver. Use transport maps and virtual maps for aliase expansion to get multiple recipients per mail. Regards Andreas
Re: Question about Sieve and filters
it or result is a place to put those return codes. (Or a function to look them up for the can't have variables purists) So instead of: filter :fileinto; if header :contains ... elsif header :contains ... elsif header :contains ... elsif header :contains ... ... ad nauseum ... You have: filter :fileinto; fileinto result; This simple example could probably be written as: fileinto filter :fileinto; But a slightly more complex script might be: filter :spamtest if result :value le comparator-i;ascii-numeric -30 { filter :sms } elsif result :value ge comparator-i;ascii-numeric 5 { fileinto spam; } fileinto filter :fileinto; Maybe: filter :myfilter { switch :result { case A: { do_something_A_specific; } case B: { do_something_B_specific; break; } default: { do_something_default_example_stop; break; } } } ^ I must admit that I love switch/case :) By that way we could have 'default' implemented nicely and we could have result 'A' 'B' nicely processed if 'A' just does one operation more than B? With if-else you would write things many times and makes script bigger to process. sysexec and so on makes too much overhead atleast here if we would have that kind system here so I prefer DSO still. There would be server-side plugins (which example could count how many spams server has processed and example module which calculates time between filters for debugging purposes) and plugins for available to end-users which can be used via filter :extension. Usually you say in the script which are 'required' extensions, those would be constructed nicely into variables too :/ It would not be too complex since usually scripts are written by client-software and not by end-user ... and usually programmers write those clients :-) maybe ifmodule ?! but then client needs to know what that specific module and we would need to reserve module-names / names to refer, argh. I am going to be nuts soon if I am not already ;) Br, ++Titus | Veli Pirttila
Cyrus support for multiple client access?
Hi, we need an IMAP-Server where multiple Clients can access one Mailbox. Does Cyrus provide this with the Shared-Folder feature? To be more specific, this means we have a mailbox where our customer sends mail to and about 9 people should be able to be connected to this mailbox seeing the incoming messages and those, that have been answererd or seen). Of course, they should be able to answer, delete or move mails. Thanks in advance, sascha
Re: Question about Sieve and filters
But a slightly more complex script might be: filter :spamtest if result :value le comparator-i;ascii-numeric -30 { filter :sms } elsif result :value ge comparator-i;ascii-numeric 5 { fileinto spam; } fileinto filter :fileinto; Maybe: filter :myfilter { switch :result { case A: { do_something_A_specific; } case B: { do_something_B_specific; break; } default: { do_something_default_example_stop; break; } } } ^ I must admit that I love switch/case :) THe case switch works for me but that is yet one more proposal to bring up. If we count this one, so far we have three proposals on the table filter modules, result placeholder, and case statement each which should be discussed separately since neither are dependent on each other. I've got no problem dicussing them we should jsut bring them up on their own threads. I particularly only care about modules and result since those specifically address my needs. A case statement would be nice except that I find the most useful comparisons aren't eq but more substring matches and relative comparators. This essentially turns a case statement into an elsif of a different color and IMHO makes a case statement not very useful in practice for this kind of processing. For instance, you can't say: switch result :value { case le -30: case ge 5: case :contains substr: } which to me makes if/elsif/else, while cumbersome, the most useful in practice. Usually you say in the script which are 'required' extensions, those would be constructed nicely into variables too :/ It would not be too complex since usually scripts are written by client-software and not by end-user ... and usually programmers write those clients :-) maybe ifmodule ?! but then client needs to know what that specific module and we would need to reserve module-names / names to refer, argh. The only required extension is filter. Module names are parameters to filter and will vary from site to site. I decided to drop the whole concept of trying to announce which modules were available. It is completely unreliable, overly cumbersome, and doesn't add that much value for the costs involved. The only real purpose it would serve is to allow script GUI composers to provide a drop down of the supported filters but in the end you still need to account for bad names so you haven't bought yourself much. Instead I'm proposing that: filter :badmodule return NIL and be treated as a noop in terms of modifying the actual email. I'll have to figure out some decent behavior for fileinto NIL; since fileinto filter :fileinto; could result in NIL if the fileinto module was unavailable. I completely agree that DSO's would make for a nice implementation of managing the modules. -- Michael -- I am going to be nuts soon if I am not already ;)
Re: Log message: No worthy mechs found
Scott Bronson wrote: On Wed, 2003-07-09 at 14:05, Ken Murchison wrote: It looks like your perl script is trying to authenticate to your server using DIGEST-MD5 and failing. ... Yes. Read doc/options.html in the SASL distro. I'm guessing that you want: sasl_mech_list: PLAIN Thanks, Ken. That helped a lot. It got rid of two of the log messages, but the no worthy mechs remains. auth.log:Jul 9 18:15:28 eden perl: No worthy mechs found auth.log:Jul 9 18:17:24 eden perl: No worthy mechs found auth.log:Jul 9 18:17:42 eden perl: No worthy mechs found auth.log:Jul 9 18:20:19 eden perl: No worthy mechs found What is this perl script trying to do? Can you get a protocol dump? -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: Cyrus support for multiple client access?
Sascha Schnitzler wrote: Hi, we need an IMAP-Server where multiple Clients can access one Mailbox. Any IMAP server MUST provide this as part of the specification. Does Cyrus provide this with the Shared-Folder feature? Yes. It provides this with any folder, provided that the ACL is set accordingly. To be more specific, this means we have a mailbox where our customer sends mail to and about 9 people should be able to be connected to this mailbox seeing the incoming messages and those, that have been answererd or seen). Of course, they should be able to answer, delete or move mails. Well, seen state is per user, so you won't know if someone else read the message. If you allow all of these users to store message flags ('w' right), then you will know when someone else replied via the \Answered flag. Similarly, allowing the 'd' right will allow the messages to be marked as \Deleted. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: 2.2.0.a on FreeBSD 5-current - Sieve not working.
James Satterfield wrote: I was hoping to stay in the freebsd ports box. But I guess this is alpha. So, cvs, here we go. The most recent CVS will most likely fix your problem. The code which determines the path for the script had a bug in it. Don't suppose there's going to be a new 2.2.x release in the near future? Perhaps a week or two. James. - Original Message - From: Carl P. Corliss [EMAIL PROTECTED] To: James Satterfield [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Wednesday, July 09, 2003 10:29 PM Subject: Re: 2.2.0.a on FreeBSD 5-current - Sieve not working. On Wednesday 09 July 2003 09:12 pm, James Satterfield wrote: Sieve doesn't seem to be processing mail. My script looks good. Try updating to the most current CVS version. There are some fixes for sieve in there that -might- fix your problem... good luck :) -- Carl P. Corliss System Administrator / Developer www.xaraya.com -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: Cyrus support for multiple client access?
Ken Murchison wrote: To be more specific, this means we have a mailbox where our customer sends mail to and about 9 people should be able to be connected to this mailbox seeing the incoming messages and those, that have been answererd or seen). Of course, they should be able to answer, delete or move mails. Well, seen state is per user, so you won't know if someone else read the message. If you allow all of these users to store message flags ('w' right), then you will know when someone else replied via the \Answered flag. Similarly, allowing the 'd' right will allow the messages to be marked as \Deleted. You could have a convention of using user-defined labels for messages to indicate that someone is taking care of it (which is what I am assuming you are interested in for the Seen flags). If this is for something like help desk support, you can make it work (I did at a previous job), but setting up a real ticket system isn't that hard and is a lot easier to use. -- John A. Tamplin Unix System Administrator Emory University, School of Public Health +1 404/727-9931
IMAP-, Cyrus-BUG or Client-BUG???
Hi folks! One of my customers created a folder under her inbox - INBOX. entwurf, please note the space!!! She tried using that folder as she does usually, but Entourage crashed... OK, this happens very often - I know... :-) But it crashed again and again, if she tried using that folder... I gave myself the rights to use this folder using cyradm. And Outlook had the strange behaviour, that it downloaded the current message-list again and again. It didn't stop. Seams like and endless-loop for me Using Outlook it wasn't possible to create such a folder (it simply ignors leading spaces). But with Entourage it was! I believe it's a client problem (- Entourage), but I'm not sure. So if anybody out there knows the problem, please tell me. Thanks, Oliver
[PATCH] missing dependencies for parallel build with cyrus-imapd-2.1.14
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi! I just tried to compile cyrus-imapd-2.1.14 on our new dual Xeon development machine (with hyperthreading this gives you 4 logical CPU's) with make -j 4 to utilize all the computing power I have available. Alas, compilation sometimes fails in directory acap like follows: [...] ### Making all in /raid5/work/rpm/2/BUILD/cyrus-imapd-0.0.0test/acap make[1]: Entering directory `/raid5/work/rpm/2/BUILD/cyrus-imapd-0.0.0test/acap' /usr/bin/compile_et ./acap_err.et /usr/bin/compile_et ./acap_err.et gcc -c -I/usr/include/db4 -I/usr/include/sasl -I/usr/local/include -I. -I.. -I. -I./../lib -DHAVE_CONFIG_H -Wall -O2 -m486 -fno-strength-reduce \ acap.c gcc -c -I/usr/include/db4 -I/usr/include/sasl -I/usr/local/include -I. -I.. -I. -I./../lib -DHAVE_CONFIG_H -Wall -O2 -m486 -fno-strength-reduce \ acapsieve.c In file included from acapsieve.c:20: acap.h:54: acap_err.h: No such file or directory make[1]: *** [acapsieve.o] Error 1 make[1]: *** Waiting for unfinished jobs make[1]: Leaving directory `/raid5/work/rpm/2/BUILD/cyrus-imapd-0.0.0test/acap' make: *** [all] Error 1 [...] Note that compile_et is executed twice. This is because the Makefile specifies that both acap_err.c and acap_err.h depend on acap_err.et (which is right), but doesn't specifiy that both files are generated by a single command (which is wrong). make -j 4 tries to execute 4 jobs in parallel, so it tries to create acap_err.h and acap_err.c with two separate jobs. This can get quite nasty if one jobs overwrites the files the other jobs just created. The Makefile also does not specifiy that acap.h needs acap_err.h make depend doesn't solve the problem, because acap_err.h does not exist when creating dependencies. I created a small patch to ./acap/Makefile.in which should solve these problems. You can find it attached to this mail. Regards - - andreas - -- Andreas Haumer | mailto:[EMAIL PROTECTED] *x Software + Systeme | http://www.xss.co.at/ Karmarschgasse 51/2/20 | Tel: +43-1-6060114-0 A-1100 Vienna, Austria | Fax: +43-1-6060114-71 -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE/DYN9xJmyeGcXPhERAlerAKC5qhnPMAwoQ2wJVuzxFchcR3CASgCeIEJr 57YB8jC5jES+tjFkzt5B69g= =sKLL -END PGP SIGNATURE- --- ./acap/Makefile.in.orig 2003-07-10 16:37:31.0 +0200 +++ ./acap/Makefile.in 2003-07-10 16:43:37.0 +0200 @@ -92,9 +92,12 @@ skiptester: skiptester.o skip-list.o $(CC) skiptester.o skip-list.o -o skiptester -acap_err.h acap_err.c: acap_err.et +acap_err.c: acap_err.et $(COMPILE_ET) $(srcdir)/acap_err.et +acap_err.h: acap_err.c +acap.h:acap_err.h + clean: rm -f *.o *.a Makefile.bak makedepend.log acap_err.c acap_err.h
massive lmtpd troubles with cyrus-imap and postfix.
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello I got problems with the LMTP daemon. I happened surprisedly without changes in out mailserver configuration. Mails sent to the lmtpd where rejected with curious errormessages: Jul 10 15:04:16 mail01 postfix/lmtp[31717]: 909EE62252: to=[EMAIL PROTECTED], relay=mail01.mlan.solnet.ch[212.101.1.98], delay=0, status=bounced (host mail01.mlan.solnet.ch[212.101.1.98] said: 501 5.5.4 Unrecognized parameters (in reply to MAIL FROM command)) Jul 10 15:04:16 mail01 postfix/lmtp[31717]: 909EE62252: to=[EMAIL PROTECTED], relay=mail01.mlan.solnet.ch[212.101.1.98], delay=0, status=bounced (host mail01.mlan.solnet.ch[212.101.1.98] said: 501 5.5.4 Unrecognized parameters (in reply to MAIL FROM command)) Jul 10 15:33:06 mail01 postfix/lmtp[34440]: 53DBE62235: to=[EMAIL PROTECTED], relay=mail01.mlan.solnet.ch[212.101.1.98], delay=0, status=deferred (SOFT BOUNCE - host mail01.mlan.solnet.ch[212.101.1.98] said: 501 5.5.4 Syntax error in parameters (in reply to MAIL FROM command)) i dumped the session with ngrep and got the following session: T 212.101.1.98:2003 - 212.101.1.119:2212 [AP] 220 mail01.solnet.ch LMTP Cyrus v2.0.16 ready.. # T 212.101.1.119:2212 - 212.101.1.98:2003 [AP] LHLO mail03.solnet.ch.. # T 212.101.1.98:2003 - 212.101.1.119:2212 [AP] 250-mail01.solnet.ch..250-IGNOREQUOTA..250-8BITMIME..250-ENHANCEDSTATUSCODES..250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5..250 PIPELINING .. # T 212.101.1.119:2212 - 212.101.1.98:2003 [AP] AUTH PLAIN hidden.. # T 212.101.1.98:2003 - 212.101.1.119:2212 [AP] 235 Authenticated!.. # T 212.101.1.119:2212 - 212.101.1.98:2003 [AP] MAIL FROM:[EMAIL PROTECTED] SIZE=2737.. # T 212.101.1.98:2003 - 212.101.1.119:2212 [AP] 501 5.5.4 Unrecognized parameters.. # T 212.101.1.119:2212 - 212.101.1.98:2003 [AP] RSET.. What's about this SIZE parameter after the MAIL FROM: ? Is this a postfix error in this case? regards Tobias - -- *** SolNet - Internet Solution Provider, Bechburgstr. 29, 4528 Zuchwil *** *** Phone: +41 32 686 8282, Fax: +41 32 685 9613, Mail: [EMAIL PROTECTED] *** -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux) iD8DBQE/DYxpaKldzkRy8jsRArmoAJ9eLMGDwxt9LEoGAkHLpuEjE+BhTQCfXRHO oagVWujo31l7GDYQvmGDDZE= =j6aP -END PGP SIGNATURE-
Here's more info regarding my HUGE problem in setting up my mail system...
First of all, thank you so very much for helping me out here! I've never set up this combination before, so I'm manoeuvring in the dark.. The combo Im talking about is Cyrus-IMAP, Cyrus-SASL, Postfix and web-cyradm, database in use is MySQL. Well, as I said before, the system accepts incoming mail without any problems. But as soon as I try to get in via smtp-auth things gets bad.. I've noticed a line in the logs saying 'saslauthd[3214]: pam_mysql: select returned more than one result', which I can't understand at all why it would return more than one result.. I've set up a domain mail admin in web-cyradm that you can access, you point your browser to http://www.the-server.net/web-cyradm/ . User name: mailadmin Password: testadmin Anyway, here's the postconf -n output: alias_maps = hash:/etc/aliases append_dot_mydomain = no broken_sasl_auth_clients = yes canonical_maps = hash:/etc/postfix/canonical command_directory = /usr/sbin config_directory = /etc/postfix content_filter = daemon_directory = /usr/lib/postfix debug_peer_level = 2 defer_transports = disable_dns_lookups = no local_destination_concurrency_limit = 5 local_destination_recipient_limit = 300 mail_owner = postfix mail_spool_directory = /var/mail mailbox_command = mailbox_size_limit = 5120 mailbox_transport = cyrus mailq_path = /usr/bin/mailq manpage_directory = /usr/share/man masquerade_classes = envelope_sender, header_sender, header_recipient masquerade_exceptions = root message_size_limit = 1024 mydestination = $myhostname, $mydomain, kattenbengtsson.com, sisters-in-sin.com mysql:/etc/postfix/mysql-mydestination.cf myhostname = mail.the-server.net myorigin = $mydomain newaliases_path = /usr/bin/newaliases program_directory = /usr/lib/postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/packages/postfix/README_FILES relocated_maps = hash:/etc/postfix/relocated sample_directory = /usr/share/doc/packages/postfix/samples sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf sendmail_path = /usr/sbin/sendmail setgid_group = maildrop smtp_sasl_auth_enable = no smtpd_client_restrictions = reject_rbl_client dsn.rfc-ignorant.org, reject_rbl_client relays.ordb.org, reject_rbl_client relays.osirusoft.com smtpd_helo_required = yes smtpd_helo_restrictions = smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = the-server.net smtpd_sasl_security_options = noanonymous smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain strict_rfc821_envelopes = no transport_maps = hash:/etc/postfix/transport unknown_local_recipient_reject_code = 450 The log when I send mail TO the system is shown in the attached file 'recieve-mail.txt' In the files 'smtp-mail.info' and 'smtp-messages' are the contents from when I try to attach via telnet to port 25 and issuing the 'ehlo' command and trying to get verified as user a0001 with password 123456 like this: 250-mail.the-server.net 250-PIPELINING 250-SIZE 1024 250-VRFY 250-ETRN 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN 250-AUTH=CRAM-MD5 DIGEST-MD5 LOGIN PLAIN 250 8BITMIME auth login 334 VXNlcm5hbWU6 YTAwMDE= 334 UGFzc3dvcmQ6 MTIzNDU2 535 Error: authentication failed quit 221 Bye Any hints or tips to what may be wrong is extremely welcome! Regards, Anders Norrbring Norrbring Consulting Halmvägen 42 SE-691 48Karlskoga SWEDEN e-mail: [EMAIL PROTECTED] Phone: +46 586-322 43 Mobile: +46 70-203 19 15 ICQ number: 5044342 Messenger ID: norrbring smtp-messages Description: Binary data alias_maps = hash:/etc/aliases append_dot_mydomain = no broken_sasl_auth_clients = yes canonical_maps = hash:/etc/postfix/canonical command_directory = /usr/sbin config_directory = /etc/postfix content_filter = daemon_directory = /usr/lib/postfix debug_peer_level = 2 defer_transports = disable_dns_lookups = no local_destination_concurrency_limit = 5 local_destination_recipient_limit = 300 mail_owner = postfix mail_spool_directory = /var/mail mailbox_command = mailbox_size_limit = 5120 mailbox_transport = cyrus mailq_path = /usr/bin/mailq manpage_directory = /usr/share/man masquerade_classes = envelope_sender, header_sender, header_recipient masquerade_exceptions = root message_size_limit = 1024 mydestination = $myhostname, $mydomain, kattenbengtsson.com, sisters-in-sin.com mysql:/etc/postfix/mysql-mydestination.cf myhostname = mail.the-server.net myorigin = $mydomain newaliases_path = /usr/bin/newaliases program_directory = /usr/lib/postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/packages/postfix/README_FILES relocated_maps = hash:/etc/postfix/relocated sample_directory = /usr/share/doc/packages/postfix/samples
cvs version running now - couple questions
Is there any way to specify the location of imapd.conf and cyrus.conf? I normally keep them in /usr/local/etc and I didn't see any configure time option for the location, or a master(8) flag for the conf locations. Since I had the misfortune of going a night without sieve (you find out just how much you love something when it's gone) I have a TON of mail in my Inbox. Is there any way to run my sieve script against existing mail? Thanks guys. James.
Re: massive lmtpd troubles with cyrus-imap and postfix.
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 It's a postfix problem of the lmtp client. regards Tobias - -- *** SolNet - Internet Solution Provider, Bechburgstr. 29, 4528 Zuchwil *** *** Phone: +41 32 686 8282, Fax: +41 32 685 9613, Mail: [EMAIL PROTECTED] *** -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux) iD8DBQE/DZwBaKldzkRy8jsRAnYQAJ0TmGrN325gzAAPk6SoBr+of7TTPQCfcYnX r0KEVJrkE/w62XVB00OP3Ww= =wYJ1 -END PGP SIGNATURE-
SV: Here's more info regarding my HUGE problem in setting up my mail system...
Hi Roman, I hate to tell you, but I'm totally unaware of how MySQL works. I haven't had the time to learn it yet.. So if you can, please tell me step-by-step what I need to do. I've been totally absorbed in Novell NetWare before, this is actually my first linux project... Oh, when looking in phpMyAdmin I found this: 'PMA Database ... Not OK' What does that mean? O hope you have the time and patience with me.. :) Later, Anders Norrbring Norrbring Consulting Halmvägen 42 SE-691 48 Karlskoga SWEDEN e-mail: [EMAIL PROTECTED] Phone: +46 586-322 43 Mobile: +46 70-203 19 15 ICQ number: 5044342 Yahoo! Messenger ID: norrbring -Ursprungligt meddelande- Från: Roman Neuhauser [mailto:[EMAIL PROTECTED] Skickat: den 10 juli 2003 19:01 Till: Anders Norrbring Kopia: Cyrus-SASL; Cyrus Info list Ämne: Re: Here's more info regarding my HUGE problem in setting up my mail system... # [EMAIL PROTECTED] / 2003-07-10 18:26:19 +0200: I've noticed a line in the logs saying 'saslauthd[3214]: pam_mysql: select returned more than one result', which I can't understand at all why it would return more than one result.. turn on query logging in mysql, see what the queries are, and try them yourself in mysql(1). -- If you cc me or remove the list(s) completely I'll most likely ignore your message.see http://www.eyrie.org./~eagle/faqs/questions.html
INBOX has \NoSelect flag
Hello, There is something I do not understand about cyrus (2.1.14). When you_unsubscribe_to the inbox the LIST response contains the INBOX with the \NoSelect flag. That's the response one of our SquirrelMail developers got. IMHO that's not right and a bug. With Cyrus 2.1.11 it doesn't happen. Can somebody confirm it's a cyrus bug? Regards, Marc Groot Koerkamp. PS: could it be that messages containing.unsubscribe. are filtered out? This is the 5th time I try to send this message and the previous ones never reached the list.
Re: Log message: No worthy mechs found
On Thu, 2003-07-10 at 05:19, Ken Murchison wrote: What is this perl script trying to do? Can you get a protocol dump? The script: I require a server-side sent directory. That way, I don't have to try to synchronize the sent directory on the three clients that I use, and we have a copy of every outgoing mail sent So, in Postfix, I say: always_bcc = storesent and in /etc/aliases: storesent: |/usr/sbin/storesent That way, Postfix invokes this script on every message that passes through the mail server. The script throws out the messages with non-local origin and then saves the rest in the appropriate user's mailbox. I've been doing this for years on Courier -- it takes about a 10-line script. Here's where the authentication happens: my $userid = shift; my $cl = Cyrus::IMAP::Admin-new('localhost'); die Could not connect to Cyrus server . ($! ? : $!\n : \n) unless $cl; my $rc = $cl-authenticate('-user' = $user, '-password' = $pass); die Could not log in: . $cl-error . \n unless $rc; # check for the existence of the Sent folder unless( $cl-list(user.$userid.$sent) ) { # doesn't exist, so create it. $cl-create(user.$userid.$sent); die Could not create user.$userid.$sent: . $cl-error . \n if $cl-error; } ... I've included the entire script as an attachment. It must be possible to get a protocol dump, but I'm not sure how. Is there a flag I can turn on in Perl to get the Cyrus::IMAP::Admin module to log all LMTP traffic? Feel free to comment, no matter how harshly. :) Thanks, - Scott #!/usr/bin/perl -w # storesent # Scott Bronson # 3 July 2003 # TODO: should report errors via an email message. # TODO: right now Return-Path on stored messages is [EMAIL PROTECTED] Prolly want to fix this. # This script is called by the Postfix local transport to automatically # deliver messages into a user's Sent mail folder. # This works for Cyrus. Simple modifications would be needed for Courier. # How to install: # 1) Put always_bcc = storesent in /etc/postfix/main.cf # 2) Put storesent = |/usr/local/sbin/storesent in /etc/aliases # 3) Run newaliases and postdfix reload. That's it! # 4) On my system, I need to do this to get it to work (I haven't #figured out why): chown cyrus storesent; chmod u+s storesent #This is a very minor but totally unnecessary security risk. # 5) chmod go-r so regular users can't see the password. # There is only one known bug: if you send a message to a mailing # list, that message will usually be reflected back to you. Since # you are listed as the sender in that message, and there's no easy # way to tell that it is from a mailing list and not directly from # the user, it will be stored in your Sent folder. This is not a # problem if your IMAP server removes dupes (like Cyrus). use strict; # the following three lines are only used by ensure_folder_exists(). # If you create all the Sent folders ahead of time, you can delete # these three lines, the routine itself, and the one line that calls it. use Cyrus::IMAP::Admin; my $user = 'root'; # username of an IMAP administrator my $pass = 'PASSPASS'; # his/her PASSWORD% % % % % # These should be configured for the local site: my $sent = Sent; # name of the sent mail mailbox my %ignores = ( 'root' = 1, 'daemon' = 1 ); my $deliver = /usr/sbin/cyrdeliver; # allow this script to run suid $ENV{PATH} = '/bin:/usr/bin'; # # Use postconf to tell us the value of $mydomain # open(CONF, -|, /usr/sbin/postconf, -h, mydomain) or die Could not execute /usr/sbin/postconf: $!\n; my $mydomain = CONF; chomp $mydomain; close CONF or die Error running /usr/sbin/postconf: $1\n; # # Read headers into @msgheaders. Each header will be a # single element in this ordered set of multi-line strings. # my @msgheaders; while( STDIN ) { last if /^\s*$/; # empty line markes the end of the headers if( /^\s/ ) { # Any line in the header beginning with whitespace is a # continuation of the previous header. $msgheaders[$#msgheaders] .= $_; } else { push @msgheaders, $_; } } # # Decide whether to store in sent mail or not. If the sender's # domain is the same as $mydomain, then sender is local. If # not, we throw it away. # my $sender = $ENV{'SENDER'}; if( $sender =~ /^\s*([EMAIL PROTECTED])\@(?:\S+\.)?$mydomain\s*$/ !$ignores{$1} ) { my $userid = $1; ensure_folder_exists($userid); open(OUT, |-, $deliver, -m, $sent, $userid) or die Could not execute $deliver: $!\n; } else { # not local: dump this mesage open(OUT, /dev/null) or die Could not open /dev/null??? $!\n; } # # Send message to cyrdeliver. First send headers, then # a blank line, then the message body. # # The first header: output a custom Recieved header print OUT Received: from $mydomain (Postfix) by $mydomain (storesent)\n; # Then output for( @msgheaders ) { # Get rid of Postfix's delivery headers.
Re: cvs version running now - couple questions
James Satterfield wrote: Is there any way to specify the location of imapd.conf and cyrus.conf? I normally keep them in /usr/local/etc and I didn't see any configure time option for the location, or a master(8) flag for the conf locations. Use the -C option for master and the services/utilities to specify imapd.conf. Use -M for master to specify cyrus.conf. Since I had the misfortune of going a night without sieve (you find out just how much you love something when it's gone) I have a TON of mail in my Inbox. Is there any way to run my sieve script against existing mail? No, not easily. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: INBOX has \NoSelect flag
Marc Groot Koerkamp wrote: Hello, There is something I do not understand about cyrus (2.1.14). When you_unsubscribe_to the inbox the LIST response contains the INBOX with the \NoSelect flag. What is the exact LIST command that is being sent? That's the response one of our SquirrelMail developers got. IMHO that's not right and a bug. With Cyrus 2.1.11 it doesn't happen. Can somebody confirm it's a cyrus bug? Regards, Marc Groot Koerkamp. PS: could it be that messages containing.unsubscribe. are filtered out? This is the 5th time I try to send this message and the previous ones never reached the list. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: INBOX has \NoSelect flag
Ken Murchison said: Marc Groot Koerkamp wrote: Hello, There is something I do not understand about cyrus (2.1.14). When you_unsubscribe_to the inbox the LIST response contains the INBOX with the \NoSelect flag. What is the exact LIST command that is being sent? A001 LIST INBOX Marc. That's the response one of our SquirrelMail developers got. IMHO that's not right and a bug. With Cyrus 2.1.11 it doesn't happen. Can somebody confirm it's a cyrus bug? Regards, Marc Groot Koerkamp. PS: could it be that messages containing.unsubscribe. are filtered out? This is the 5th time I try to send this message and the previous ones never reached the list. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: INBOX has \NoSelect flag
Marc Groot Koerkamp wrote: Ken Murchison said: Marc Groot Koerkamp wrote: Hello, There is something I do not understand about cyrus (2.1.14). When you_unsubscribe_to the inbox the LIST response contains the INBOX with the \NoSelect flag. What is the exact LIST command that is being sent? A001 LIST INBOX I can't reproduce this behavior: . list inbox * LIST (\HasChildren) . inbox . OK Completed . unsubscribe inbox . OK Completed . list inbox * LIST (\HasChildren) . inbox . OK Completed LSUB returns with \Noselect however: . lsub inbox * LSUB (\Noselect \HasChildren) . inbox . OK Completed -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
logsurfer kills cyrus
I have an issue where logsurfer regularly kills the master cyrus daemon.. If an event occurs which causes logsurfer to generate a few thousand messages and sends them to my cyrus server, it seems lmtp falls over and never recovers. I have to restart the master daemon each time. I figure if i can DOS myself then someone elso could do it as well.. Are there any tuning / performance / mail bomb protection measures i can look at ? I have set a confMAX_QUEUE_RUN_SIZE = 1000 in sendmail but this does not seem to make any difference.. Sendmail seems to handle the load fine, its just when cyrus tries to deliver the mail that things fall apart. Thanks..
OpenGroupware.org (OGo)
A bit off topic, but I know this is something that has come up on this list from time to time over the years, and besides, they mention Cyrus! ;-) http://www.infoworld.com/article/03/07/10/HNogo_1.html http://opengroupware.org/en/index.html -- Amos