{"id":53,"date":"2004-09-09T08:31:32","date_gmt":"2004-09-09T05:31:32","guid":{"rendered":"http:\/\/void.gr\/kargig\/blog\/?p=53"},"modified":"2004-09-09T08:36:03","modified_gmt":"2004-09-09T05:36:03","slug":"qmail-vpopmai-l-procmail-spamassassin","status":"publish","type":"post","link":"https:\/\/www.void.gr\/kargig\/blog\/2004\/09\/09\/qmail-vpopmai-l-procmail-spamassassin\/","title":{"rendered":"Qmail + vpopmai l+ procmail + spamassassin"},"content":{"rendered":"<p>You might probably think that&#8217;s crazy&#8230;but yes it is possible. I have a <a href=\"http:\/\/www.qmail.nu\">qmail lazydog<\/a> installation that has built in vpopmail. But no mailer is complete these days unless it features antispam and antivirus protection. So I though I should implement <a href=\"http:\/\/spamassassin.apache.org\/\">spamassassin<\/a> + <a href=\"http:\/\/www.clamav.net\/\">clamav<\/a>. I won&#8217;t show how to setup spamd or clamd but how to process and deliver mails to users.<br \/>\nHow it works:<br \/>\ninside each domain in vpopmail there&#8217;s a .qmail-default file that it has probably something like this,<\/p>\n<blockquote><p>| \/home\/vpopmail\/bin\/vdelivermail &#8221; \/home\/vpopmail\/domains\/DOMAINNAME\/postmaster<\/p><\/blockquote>\n<p>But we want to use procmail, so we make it like this:<\/p>\n<blockquote><p>| preline \/usr\/bin\/procmail -p -m \/home\/vpopmail\/etc\/procmailrc<\/p><\/blockquote>\n<p>My procmailrc file:<\/p>\n<blockquote><p># qmail Lazydog procmailrc file<br \/>\nSHELL=&#8221;\/bin\/bash&#8221;<br \/>\nVHOME=`\/home\/vpopmail\/bin\/vuserinfo -d $EXT@$HOST`<br \/>\nVERBOSE=&#8221;no&#8221;<\/p>\n<p># Make sure that we have a .Spam and .Virus folder to sort spam and virus into.<br \/>\n# This will create directorys under the ~vpopmail\/domains\/<domain>\/<user>\/Maildir<br \/>\n# direcory. This directory will be created as soon as the user<br \/>\n# recives any mail. It simply creates the .Spam and .Virus directories,<br \/>\n# as well as subscribes them to courier-imap<br \/>\n:0wic<br \/>\n* ? test ! -d $VHOME\/Maildir\/.Spam<br \/>\n|( \/var\/qmail\/bin\/maildirmake $VHOME\/Maildir\/.Spam ;         \/bin\/echo &#8220;INBOX\/Spam&#8221; >> $VHOME\/Maildir\/.bincimap-subscribed )<br \/>\n:0wic<br \/>\n* ? test ! -d $VHOME\/Maildir\/.Virus<br \/>\n|( \/var\/qmail\/bin\/maildirmake $VHOME\/Maildir\/.Virus ;         \/bin\/echo &#8220;INBOX\/Virus&#8221; >> $VHOME\/Maildir\/.bincimap-subscribed )<\/p>\n<p># Run Anti-Virus and Anit-spam tests.<br \/>\n:0fw<br \/>\n| \/var\/qmail\/bin\/scanmail.sh<\/p>\n<p>:0:<br \/>\n* ^X-Virus-Status: INFECTED<br \/>\n$VHOME\/Maildir\/.Virus\/<\/p>\n<p># Sort anything marked as SPAM into the users Maildir\/.Spam\/<br \/>\n:0:<br \/>\n* ^X-Spam-Status: YES<br \/>\n$VHOME\/Maildir\/.Spam\/<\/p>\n<p># Everything else goes to the users default Maildir\/<br \/>\n#:0:<br \/>\n#*<br \/>\n#$VHOME\/Maildir\/<br \/>\n:0w<br \/>\n| \/home\/vpopmail\/bin\/vdelivermail &#8221; bounce-no-mailbox\n<\/p><\/blockquote>\n<p>notice the last 2 lines, they make procmail return the mail back to vpopmail so any quotas or other options are applied. Take a look at the Spam and Virus folders that are created inside each everyone&#8217;s account. scanmail.sh that is referred inside procmailrc is provided by the lazydog package. You can configure it as you want ..and it has a lot of options on how viruses and spam is treated.<\/p>\n<p>Have fun with your secure and without spam mail&#8230;.you do use smtp auth and ssl patches for your smtp+imap&#8230;don&#8217;t you ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You might probably think that&#8217;s crazy&#8230;but yes it is possible. I have a qmail lazydog installation that has built in vpopmail. But no mailer is complete these days unless it features antispam and antivirus protection. So I though I should implement spamassassin + clamav. I won&#8217;t show how to setup spamd or clamd but how [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-53","post","type-post","status-publish","format-standard","hentry","category-general"],"aioseo_notices":[],"views":5743,"_links":{"self":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":0,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/53\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/media?parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/categories?post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/tags?post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}