<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-269688189640615970</atom:id><lastBuildDate>Thu, 24 Apr 2025 01:10:37 +0000</lastBuildDate><category>&quot;High Performance Mail server&quot;</category><category>&quot;instant bulletins&quot; bulletin vbulletin IndiMail bulkmail</category><category>&quot;mail server&quot;</category><category>&quot;spam control&quot; BADIP qmail-smtpd indimail</category><category>&quot;spam filtering&quot; spamassassin indimail &quot;indimail configuration&quot; svctool supervise</category><category>DKIM DomainKey DomainKeys indimail netqmail qmail qmail-dkim</category><category>INSTALLATION</category><category>InLookup &quot;connection pooling&quot; MySQL</category><category>QHPSI indimail virus scanner clamav</category><category>QMQP</category><category>RPM YUM Repository</category><category>SOX HIPAA &quot;email archiving&quot; indimail altermime filterargs &quot;Basel II&quot; MiFID PIPEDA FRCP</category><category>SOX HIPAA &quot;email archiving&quot; indimail qmail-queue &quot;Basel II&quot; MiFID PIPEDA FRCP</category><category>accesslist smtp qmail-smtpd</category><category>administration adminclient indisrvr</category><category>altermime</category><category>authenticated SMTP pam-checkpwd vchkpass pam-multi</category><category>bogofilter</category><category>cdb MySQL &quot;control files&quot; IndiMail qmail</category><category>courier-imap</category><category>domain limits vlimit</category><category>dovecot pam pam-multi nssd pwdlookup NSS</category><category>envrules qmail-smtpd spawn-filter indimail qmail</category><category>fetchmail</category><category>imap</category><category>indimail</category><category>indimail &quot;post execution handle&quot;</category><category>indimail filter</category><category>indimail installation steps</category><category>indimail mysql &quot;supported MySQL version&quot;</category><category>indimail netqmail qmail greylisting qmail-greyd</category><category>indimail qmail-send</category><category>indimail ssl tls imaps pop3s smtps</category><category>indimail systemd</category><category>indimail vdelivermail</category><category>indimail web &quot;web admin&quot; iwebadmin</category><category>indimail-mini QMQP indimail</category><category>ldap indimail addressbook openldap</category><category>mail</category><category>mda</category><category>mrtg &quot;mail statistics&quot; indimail</category><category>mta</category><category>pack</category><category>pop3</category><category>procmail</category><category>qmail</category><category>qmail-remote outgoingip &quot;remote delivery&quot;</category><category>relaying SMTP indimail</category><category>ripmime</category><category>unpack</category><category>vdelivermail LDA dot-qmail</category><category>vlimit vmodddomain indimail quota</category><category>vpopmail</category><category>yum indimail RPM OBS &quot;Build Service - openSUSE&quot;</category><title>IndiMail</title><description>IndiMail is a Secure, Reliable, Efficient Messaging Platform which provides you everything needed in a modern messaging server - ESMTP, IMAP, POP3, QMTP, QMQP and many other features.&#xa;&#xa;IndiMail gives you speeds that are faster than most MTAs.&#xa;&#xa;The flexibility provided by IndiMail&#39;s authentication methods allow any IMAP/POP3 server to be used with IndiMail.&#xa;&#xa;IndiMail is built for speed and flexibility. You can download the source or use the binary RPM generated by openSUSE Build Service.</description><link>http://indimail.blogspot.com/</link><managingEditor>noreply@blogger.com (cprogrammer)</managingEditor><generator>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-2454478236599399544</guid><pubDate>Thu, 07 Dec 2017 05:24:00 +0000</pubDate><atom:updated>2017-12-07T11:09:18.831+05:30</atom:updated><title>IndiMail Queue Mechanism</title><description>&lt;style type=&quot;text/css&quot;&gt;h1 { margin-bottom: 0.08in; }h1.western { font-family: &quot;Liberation Sans&quot;, sans-serif; font-size: 18pt; }h1.cjk { font-family: &quot;Source Han Sans CN Regular&quot;; font-size: 18pt; }h1.ctl { font-family: &quot;Lohit Devanagari&quot;; font-size: 18pt; }p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }&lt;/style&gt;Indimail has the ability of configuring multiple local and remote
queues. A queue is a location on your hard disk where email are
deposited before actual delivery. When you have massive injecting
rates, your software may place multiple files in a single directory.
This drastically reduces file system performance. IndiMail avoids
this by injecting your email in a queue consisting of multiple
directories and mails distributed as evenly as possible across these
directories.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ExQMp36yhAyrtD8mx2vltz2ftYWruFN8khRrRXIurTePDVC07I42TG-U_wctwfNoZtsjOwpjQK7QJUIBm4IWYLYUdN6Dkrs9OZWmgS0KcH3VX5G0xsqJzN3yCW9bPTY4X83uSOOgAZo/s1600/indimail_queue.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;601&quot; data-original-width=&quot;800&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ExQMp36yhAyrtD8mx2vltz2ftYWruFN8khRrRXIurTePDVC07I42TG-U_wctwfNoZtsjOwpjQK7QJUIBm4IWYLYUdN6Dkrs9OZWmgS0KcH3VX5G0xsqJzN3yCW9bPTY4X83uSOOgAZo/s320/indimail_queue.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Balancing of emails across multiple queues is achieved by the
program qmail-multi(8), which is actuall just a qmail-queue(8)
replacement. Any qmail-queue frontend can use qmail-multi. The list
of qmail-queue frontends in IndiMail are&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
sendmail&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
qmail-inject&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
qmail-smtpd&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
qmail-qmqpd&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
qmail-qmtpd&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
qreceipt&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
condredirect&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
dotforward&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
fastforward&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
forward&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
maildirserial&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
new-inject&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
ofmipd&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
replier&lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
rrforward&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3HX5baZ-DH8UvNarZQzMdYSFApd80IDmaeB-TwPHUJX5ISAAVQecAyra2M5FyNHvr-ZNslg2wEhft6P6_8OP2hNru32Y7zei11FCYHeDYwq2cQ_fmHMyYhO4-ZVh1fi4Hy6PP5BAK790/s1600/qmail-multi.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;794&quot; data-original-width=&quot;1058&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3HX5baZ-DH8UvNarZQzMdYSFApd80IDmaeB-TwPHUJX5ISAAVQecAyra2M5FyNHvr-ZNslg2wEhft6P6_8OP2hNru32Y7zei11FCYHeDYwq2cQ_fmHMyYhO4-ZVh1fi4Hy6PP5BAK790/s320/qmail-multi.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You just need to configure the following environment variables to
have the qmail-queue(8) frontends using qmail-multi(8)&lt;br /&gt;
1. QUEUE_BASE – Base directory where all queues will be placed&lt;br /&gt;
2. QUEUE_COUNT – number of queues&lt;br /&gt;
3. QUEUE_START – numeric prefix of the first queue&lt;br /&gt;
e.g. If you want IndiMail to use 10 queues, this is what you will
do&lt;br /&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
% su &lt;br /&gt;
# for i in qmail-smtpd.25 qmail-smtpd.465 qmail-smtpd.587 qmail-send.25
\&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; qmail-qmqpd.628 qmail-qmtpd.209&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; do&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; echo 10 &amp;gt; /service/$i/variables/QUEUE_COUNT&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; echo “/var/indimail/queue” &amp;gt;
/service/$i/variables/QUEUE_BASE&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; echo “1” &amp;gt; /service/$i/variables/QUEUE_START&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; done&lt;br /&gt;
# &lt;/div&gt;
&lt;br /&gt;
You also need to make sure that you have ten queues in
/&lt;i&gt;&lt;b&gt;var/indimail/queue&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
% su&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
# for i 1 2 3 4 5 6 7 8 9 10&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; do&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; /usr/bin/queue-fix /var/indimail/queue/queue”$i” &amp;gt;
/dev/null&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&amp;gt; done&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
# exit&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
% ls -ld var/indimail/queue/queue*&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Mar 30  2017
/var/indimail/queue/queue1&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Dec  7 10:45
/var/indimail/queue/queue10&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Mar 30  2017
/var/indimail/queue/queue2&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Mar 30  2017
/var/indimail/queue/queue3&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Mar 30  2017
/var/indimail/queue/queue4&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Mar 30  2017
/var/indimail/queue/queue5&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Dec  7 10:45
/var/indimail/queue/queue6&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Dec  7 10:45
/var/indimail/queue/queue7&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Dec  7 10:45
/var/indimail/queue/queue8&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
drwxr-x---. 12 qmailq qmail 4096 Dec  7 10:45
/var/indimail/queue/queue9&lt;/div&gt;
&lt;br /&gt;



 
 
 
 &lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.1in; line-height: 120%; }a:link { &lt;/style&gt;Now all you need is restart of all services to use the new
QUEUE_BASE, QUEUE_COUNT, QUEUE_START environment variables&lt;br /&gt;

&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
% sudo svc -d /service/qmail smtpd* /service/qmail-send.25
/service/qmail-qm?pd.*&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
% sudo svc -u /service/qmail smtpd* /service/qmail send.25
/service/qmail-qm?pd.*&lt;/div&gt;
</description><link>http://indimail.blogspot.com/2017/12/h1-margin-bottom-0.html</link><author>noreply@blogger.com (cprogrammer)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ExQMp36yhAyrtD8mx2vltz2ftYWruFN8khRrRXIurTePDVC07I42TG-U_wctwfNoZtsjOwpjQK7QJUIBm4IWYLYUdN6Dkrs9OZWmgS0KcH3VX5G0xsqJzN3yCW9bPTY4X83uSOOgAZo/s72-c/indimail_queue.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-3029978226558984961</guid><pubDate>Mon, 04 Dec 2017 12:30:00 +0000</pubDate><atom:updated>2017-12-04T18:00:13.165+05:30</atom:updated><title>RoundCube with IndiMail</title><description>


 
 
 
 &lt;style type=&quot;text/css&quot;&gt;h2.western { font-family: &quot;Liberation Sans&quot;, sans-serif; font-size: 16pt; }h2.cjk { font-family: &quot;Source Han Sans CN Regular&quot;; font-size: 16pt; }h2.ctl { font-family: &quot;Lohit Devanagari&quot;; font-size: 16pt; }p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }&lt;/style&gt;


&lt;br /&gt;
These instructions will work on CentOS, RHEL, Fedora. For
Debian/Ubuntu and other distros, please use your knowledge to make
changes accordingly. In this guide, replace indimail.org with your
own hostname.&lt;br /&gt;

&lt;h2 class=&quot;western&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;__RefHeading___Toc6375_2659480361&quot;&gt;&lt;/a&gt;Non
SSL Version Install/Configuration 
&lt;/h2&gt;
(look below for SSL config)&lt;br /&gt;

&lt;ol&gt;
&lt;li&gt;
Install RoundCube. On older systems, use the yum command&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; font-weight: normal; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;i&gt;$ sudo dnf -y install roundcubemail php-mysqlnd&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;
Connect to MySQL using a privileged user. IndiMail
 installation creates a privileged mysql user &#39;mysql&#39;. It does not
 have the user &#39;root&#39;. Look at the variable PRIV_PASS in
 /usr/sbin/svctool to know the password.&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ /usr/bin/mysql -u mysql -p mysql&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; create database RoundCube_db;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; create user roundcube identified by &#39;subscribed&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; GRANT ALL PRIVILEGES on RoundCube_db.* to roundcube;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; FLUSH PRIVILEGES;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; QUIT;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ /usr/bin/mysql -u mysql -p RoundCube_db &amp;lt;
/usr/share/roundcubemail/SQL/mysql.initial.sql&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Copy /etc/roundcube/config.inc.php.sample to
 /etc/roundcube.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo cp /etc/roundcube/config.inc.php.sample
/etc/roundcubemail/config.inc.php&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
Edit the lines in
/etc/roundcube/config.inc.php&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;db_dsnw&#39;] =
&#39;mysql://roundcube:subscribed@localhost/RoundCube_db&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_server&#39;] = &#39;localhost&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_port&#39;] = 587;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_user&#39;] = &#39;%u&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_pass&#39;] = &#39;%p&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;support_url&#39;] = &#39;&lt;a href=&quot;http://indimail.sourceforge.net/&quot;&gt;http://indimail.sourceforge.net&lt;/a&gt;&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;product_name&#39;] = &#39;IndiMail Webmail&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;plugins&#39;] = array(&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;archive&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;sauserprefs&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;markasjunk2&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;iwebadmin&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
);&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
NOTE: the iwebadmin plugin will not
work for postmaster account or IndiMail users having QA_ADMIN
privileges. man vmoduser(1)&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
This file should have read permission
for apache group&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown root:apache /etc/roundcube/config.inc.php&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 640 /etc/roundcube/config.inc.php&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
For markasjunk2 to work you need to
set permission for apache to write /etc/indimail/spamignore&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown apache:indimail /etc/indimail/spamignore&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 644 /etc/indimail/spamignore&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;
Edit the lines in /etc/roundcube/defaults.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;db_dsnw&#39;] =
&#39;mysql://roundcube:subscribed@localhost/RoundCube_db&#39;;$config[&#39;imap_auth_type&#39;]
= &#39;LOGIN&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_auth_type&#39;] = &#39;LOGIN&#39;;&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
This file should have read permission
for apache group&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown root:apache /etc/roundcube/defaults.inc.php&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 640 /etc/roundcube/defaults.inc.php&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;
Change iwebadmin path in
 /usr/share/roundcubemail/iwebadmin/config.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$rcmail_config[&#39;iwebadmin_path&#39;] =
&#39;http://127.0.0.1/cgi-bin/iwebadmin&#39;;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;
Change sauserprefs_db_dsnw in
 /usr/share/roundcubemail/sauserprefs/config.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;$rcmail_config[&#39;sauserprefs_db_dsnw&#39;]
= &#39;mysql://roundcube:subscribed@localhost/RoundCube_db&#39;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;
Restore indimail plugins for roundcube&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo yum install ircube&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
or&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ cd /tmp&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ wget
http://downloads.sourceforge.net/indimail/indimail-roundcube-1.0.tar.gz
# This file&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ cd /&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo tar xvfz /tmp/indimail-roundcube-1.0.tar.gz
usr/share/roundcubemail/plugins&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;$ /usr/bin/mysql -u mysql -p
RoundCube_db &amp;lt;
/usr/share/roundcubemail/sauserprefs/sauserprefs.sql&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;
change pdo_mysql.default_socket /etc/php.ini&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
For some reason pdo_mysql uses wrong
mysql socket on some systems. Uses /var/lib/mysql/mysql.sock instead
of /var/run/mysqld/mysqld.sock. You need to edit the file
/etc/php.ini and define pdo_mysql.default_socket&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
pdo_mysql.default_socket= /var/run/mysqld/mysqld.sock&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
You can verify if the path has been
correctly entered by executing the below command. The command should
return without any error&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;$ php -r &quot;new
PDO(&#39;mysql:host=localhost;dbname=RoundCube_db&#39;, &#39;roundcube&#39;,
&#39;subscribed&#39;);&quot;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;9&quot;&gt;
&lt;li&gt;
HTTPD config&lt;br /&gt;

 &lt;ol type=&quot;i&quot;&gt;
&lt;li&gt;
Edit file /etc/httpd/conf.d/roundcubemail.conf and edit
  the following lines&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
#&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
# Round Cube Webmail is a browser-based multilingual IMAP client&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
#Alias /indimail /usr/share/roundcubemail&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
# Define who can access the Webmail&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
# You can enlarge permissions once configured&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;directory roundcubemail=&quot;&quot; share=&quot;&quot; usr=&quot;&quot;&gt;&lt;/directory&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;ifmodule mod_authz_core.c=&quot;&quot;&gt; 
&lt;/ifmodule&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        # Apache 2.4&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Require ip 127.0.0.1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Require all granted&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Require local&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;ifmodule mod_authz_core.c=&quot;&quot;&gt;&lt;/ifmodule&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        # Apache 2.2&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Order Deny,Allow&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Deny from all&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Allow from 127.0.0.1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Allow from ::1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
This file should be owned by root&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown root:root /etc/httpd/conf.d/roundcubemail.conf&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 644 /etc/httpd/conf.d/roundcubemail.conf&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol start=&quot;2&quot; type=&quot;i&quot;&gt;
&lt;li&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
Restart
  httpd&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo service httpd restart&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;10&quot;&gt;
&lt;li&gt;
Login to webmail at http://localhost/indimail&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 class=&quot;western&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;__RefHeading___Toc6377_2659480361&quot;&gt;&lt;/a&gt;SSL
/ TLS Version&lt;/h2&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol&gt;
&lt;li value=&quot;1&quot;&gt;
Install RoundCube. On older systems, use the yum
 command&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; font-weight: normal; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;i&gt;$ sudo dnf -y install roundcubemail php-mysqlnd&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;
Connect to MySQL using a privileged user. IndiMail
 installation creates a privileged mysql user &#39;mysql&#39;. It does not
 have the user &#39;root&#39;. Look at the variable PRIV_PASS in
 /usr/sbin/svctool to know the password.&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ /usr/bin/mysql -u mysql -p mysql&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; create database RoundCube_db;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; create user roundcube identified by &#39;subscribed&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; GRANT ALL PRIVILEGES on RoundCube_db.* to roundcube;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; FLUSH PRIVILEGES;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
MySQL&amp;gt; QUIT;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ /usr/bin/mysql -u mysql -p RoundCube_db &amp;lt;
/usr/share/roundcubemail/SQL/mysql.initial.sql&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Copy /etc/roundcube/config.inc.php.sample to
 /etc/roundcube.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo cp /etc/roundcube/config.inc.php.sample
/etc/roundcubemail/config.inc.php&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
Edit the lines in
/etc/roundcube/config.inc.php&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;db_dsnw&#39;] =
&#39;mysql://roundcube:subscribed@localhost/RoundCube_db&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;default_host&#39;] = &#39;ssl://indimail.org&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_server&#39;] = &#39;localhost&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_port&#39;] = 587;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_user&#39;] = &#39;%u&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_pass&#39;] = &#39;%p&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;support_url&#39;] = &#39;&lt;a href=&quot;http://indimail.sourceforge.net/&quot;&gt;http://indimail.sourceforge.net&lt;/a&gt;&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;product_name&#39;] = &#39;IndiMail Webmail&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;plugins&#39;] = array(&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;archive&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;sauserprefs&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;markasjunk2&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
       &#39;iwebadmin&#39;,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
);&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
NOTE: the iwebadmin plugin will not
work for postmaster account or IndiMail users having QA_ADMIN
privileges. man vmoduser(1)&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
This file should have read permissions
for apache group&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown root:apache /etc/roundcube/config.inc.php&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 640 /etc/roundcube/config.inc.php&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Edit the lines in /etc/roundcube/defaults.inc.php i.e.&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;db_dsnw&#39;] =
&#39;mysql://roundcube:subscribed@localhost/RoundCube_db&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;default_host&#39;] = &#39;ssl://indimail.org&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;default_port&#39;] = 993;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;imap_conn_options&#39;] = array(&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
  &#39;ssl&#39;         =&amp;gt; array(&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &#39;verify_peer&#39;       =&amp;gt; false,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &#39;verify_peer_name&#39;  =&amp;gt; false,&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
  ),&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
);&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;imap_auth_type&#39;] = &#39;LOGIN&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;smtp_auth_type&#39;] = &#39;LOGIN&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;force_https&#39;] = true;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;product_name&#39;] = &#39;IndiMail Webmail&#39;;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$config[&#39;useragent&#39;] = &#39;IndiMail Webmail/&#39;.RCMAIL_VERSION;&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
This file should have read permission
for apache group$config[&#39;force_https&#39;] = true;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown root:apache /etc/roundcube/defaults.inc.php&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 640 /etc/roundcube/defaults.inc.php&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Change iwebadmin path in
 /usr/share/roundcubemail/iwebadmin/config.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$rcmail_config[&#39;iwebadmin_path&#39;] =
&#39;https://127.0.0.1/cgi-bin/iwebadmin&#39;;&lt;/div&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Change sauserprefs_db_dsnw in
 /usr/share/roundcubemail/sauserprefs/config.inc.php&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;$rcmail_config[&#39;sauserprefs_db_dsnw&#39;]
= &#39;mysql://roundcube:subscribed@localhost/RoundCube_db&#39;;&lt;/span&gt;&lt;/div&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Restore indimail plugins for roundcube&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ cd /tmp&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ wget
http://downloads.sourceforge.net/indimail/indimail-roundcube-ssl-1.0.tar.gz
# This file&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ cd /&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo tar xvfz /tmp/indimail-roundcube-ssl-1.0.tar.gz
usr/share/roundcubemail/plugins&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;$ /usr/bin/mysql -u mysql -p
RoundCube_db &amp;lt;
/usr/share/roundcubemail/sauserprefs/sauserprefs.sql&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Change pdo_mysql.default_socket /etc/php.ini&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
For some reason pdo_mysql uses wrong
mysql socket on some systems. Uses /var/lib/mysql/mysql.sock instead
of /var/run/mysqld/mysqld.sock. You need to edit the file
/etc/php.ini and define pdo_mysql.default_socket&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
pdo_mysql.default_socket= /var/run/mysqld/mysqld.sock&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
You can verifiy if the path has been
correctly entered by executing the below command. The command should
return without any error&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
php -r &quot;new PDO(&#39;mysql:host=localhost;dbname=RoundCube_db&#39;,
&#39;roundcube&#39;, &#39;subscribed&#39;);&quot;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
HTTPD config&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol type=&quot;i&quot;&gt;
&lt;li value=&quot;1&quot;&gt;
Edit file /etc/httpd/conf.d/roundcubemail.conf
  and edit the following lines&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
#&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
# Round Cube Webmail is a browser-based multilingual IMAP client&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
#Alias /indimail /usr/share/roundcubemail&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
# Define who can access the Webmail&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
# You can enlarge permissions once configured&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;directory roundcubemail=&quot;&quot; share=&quot;&quot; usr=&quot;&quot;&gt;&lt;/directory&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;ifmodule mod_authz_core.c=&quot;&quot;&gt;&lt;/ifmodule&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        # Apache 2.4&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Require ip 127.0.0.1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Require all granted&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Require local&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;ifmodule mod_authz_core.c=&quot;&quot;&gt;&lt;/ifmodule&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        # Apache 2.2&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Order Deny,Allow&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Deny from all&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Allow from 127.0.0.1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
        Allow from ::1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
    &lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
This file should be owned by root&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chown root:root /etc/httpd/conf.d/roundcubemail.conf&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo chmod 644 /etc/httpd/conf.d/roundcubemail.conf&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol start=&quot;2&quot; type=&quot;i&quot;&gt;
&lt;li&gt;
This is assuming you have already generated indimail cert
  after indimail installation. If not execute the following command.
  We will assume that your host is indimail.org&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
$ sudo /usr/sbin/svctool --postmaster=postmaster@indimail.org
–config=cert&quot;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
   --common_name=indimail.org&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
Edit the file
/etc/httpd/conf.d/ssl.conf i.e.&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
ServerName indimail.org:443&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
SSLCertificateFile /etc/indimail/certs/servercert.pem&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
Now apache server needs access to
servercert.pem. Add apache user to the qmail group. You can chose
either of the below two options (Options 2 is less secure, as it
gives httpd access to qmail files).&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
Option 1&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
$ sudo chown indimail:apache /etc/indimail/certs/servercert.pem&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
$ sudo chmod 640 /etc/indimail/certs/servercert.pem&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
Option 2&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
$ sudo usermod -aG qmail apache&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
Now you should see apache getting
qmail group access&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
$ grep &quot;qmail:x:&quot; /etc/group&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
qmail:x:1002:qscand,apache&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol start=&quot;3&quot; type=&quot;i&quot;&gt;
&lt;li&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
Edit file
  /etc/php.ini. For some funny reason, the cert needs to be
  mentioned. i.e.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
openssl.cafile=/etc/indimail/certs/servercert.pem&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
openssl.capath=/etc/pki/tls/certs&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol type=&quot;i&quot;&gt;&lt;ol start=&quot;0&quot;&gt;Run the following command to get the cert locations.
   [ini_cafile] should point to servercert.pem location.&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
$ php -r &quot;print_r(openssl_get_cert_locations());&quot;&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
Array&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
(&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [default_cert_file] =&amp;gt; /etc/pki/tls/cert.pem&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [default_cert_file_env] =&amp;gt; SSL_CERT_FILE&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [default_cert_dir] =&amp;gt; /etc/pki/tls/certs&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [default_cert_dir_env] =&amp;gt; SSL_CERT_DIR&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [default_private_dir] =&amp;gt; /etc/pki/tls/private&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [default_default_cert_area] =&amp;gt; /etc/pki/tls&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [ini_cafile] =&amp;gt; /etc/indimail/certs/servercert.pem&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
  [ini_capath] =&amp;gt; /etc/pki/tls/certs&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.98in; padding: 0.02in;&quot;&gt;
)&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol start=&quot;4&quot; type=&quot;i&quot;&gt;
&lt;li&gt;
Follow instructions to setup https&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
https://wiki.centos.org/HowTos/Https&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol start=&quot;5&quot; type=&quot;i&quot;&gt;
&lt;li&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
Restart
  httpd&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ sudo service httpd restart&lt;/div&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;9&quot;&gt;&lt;ol start=&quot;6&quot; type=&quot;i&quot;&gt;
&lt;li&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
It appears
  that in PHP 5.6.0, functions are now validating SSL certificates(in
  a variety of ways). First, it appears to fail for untrusted
  certificates (i.e. no matching CA trusted locally), and secondly,
  it appears to fail for mismatched hostnames in the request and
  certificate. Verify that php is using the correct certificate with
  proper CN. Use the program testssl.php download from the location
  you downloaded this README/INSTALL file. In Step 9ii you created a
  certificate with common_name as indimail.org. Use the same host
  that you gave when creating the certificate.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
$ php ./testssl.php indimail.org&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;
Success&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;ol start=&quot;10&quot;&gt;
&lt;li&gt;
Login to webmail&lt;br /&gt;

 &lt;ol type=&quot;a&quot;&gt;
&lt;li&gt;
edit /etc/hosts and edit the line for localhost i.e.&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
127.0.0.1 localhost indimail.org&lt;/div&gt;
&lt;ol start=&quot;10&quot;&gt;&lt;ol start=&quot;2&quot; type=&quot;a&quot;&gt;
&lt;li&gt;
Restart httpd&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
$ sudo service httpd restart&lt;/div&gt;
&lt;ol start=&quot;10&quot;&gt;&lt;ol start=&quot;3&quot; type=&quot;a&quot;&gt;
&lt;li&gt;
Login to webmail at https://indimail.org/indimail&lt;br /&gt;
NOTE: Replace indimail.org with domain that you have configured

&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
</description><link>http://indimail.blogspot.com/2017/12/roundcube-with-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-2755448311009345121</guid><pubDate>Tue, 26 Apr 2016 15:13:00 +0000</pubDate><atom:updated>2018-06-21T16:59:06.388+05:30</atom:updated><title>Using Docker Engine to Run IndiMail / IndiMail-MTA</title><description>IndiMail now has docker images. You can read about installing &lt;a href=&quot;http://www.docker.com/&quot; target=&quot;_blank&quot;&gt;Docker&lt;/a&gt; &lt;a href=&quot;https://docs.docker.com/engine/installation/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. Once you have installed docker-engine, you need to start it. Typically it would be&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$ sudo service docker start&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
To avoid having to use &lt;code&gt;sudo&lt;/code&gt; when you use the &lt;code&gt;docker&lt;/code&gt; command, create a Unix
group called &lt;code&gt;docker&lt;/code&gt; and add users to it. When the &lt;code&gt;docker&lt;/code&gt; daemon starts, it
makes the ownership of the Unix socket read/writable by the &lt;code&gt;docker&lt;/code&gt; group.&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;Warning&lt;/b&gt;: The &lt;code&gt;docker&lt;/code&gt; group is equivalent to the &lt;code&gt;root&lt;/code&gt; user; For details
on how this impacts security in your system, see &lt;a href=&quot;https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface&quot;&gt;&lt;i&gt;Docker Daemon Attack
Surface&lt;/i&gt;&lt;/a&gt; for details.&lt;/blockquote&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;code&gt;$ sudo groupadd docker &lt;/code&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;code&gt;$ sudo usermod -aG docker your_username&lt;/code&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Log out and login again to ensure your user is running with the correct permissions. You can run the unix &lt;b&gt;&lt;i&gt;id&lt;/i&gt;&lt;/b&gt; command to confirm that you have the docker group privileges. e.g.&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$ id -a
uid=1000(mbhangui) gid=1000(mbhangui) groups=1000(mbhangui),10(wheel),545(docker) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;code&gt;&lt;/code&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Now we need to pull the docker image for IndiMail. use the &lt;b&gt;&lt;i&gt;docker pull&lt;/i&gt;&lt;/b&gt; command. The values for &lt;i&gt;&lt;b&gt;tag&lt;/b&gt;&lt;/i&gt; can be fedora-23, centos7, debian8, ubuntu-15.10, ubuntu-14.03. If your favourite OS is missing, let me know. You can find the list of all images &lt;a href=&quot;https://cloud.docker.com/app/cprogrammer/repository/docker/cprogrammer/indimail/general&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$ &lt;span style=&quot;font-family: inherit;&quot;&gt;docker pull cprogrammer/indimail:&lt;i&gt;&lt;b&gt;tag&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
(for indimail-mta image, execute &lt;b&gt;docker pull cprogrammer/indimail-mta:tag&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You can now list the docker image by executing the &lt;b&gt;&lt;i&gt;docker images&lt;/i&gt;&lt;/b&gt; command.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$&lt;/span&gt; docker images
REPOSITORY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TAG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIZE
cprogrammer/indimail&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fedora-23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a02e6014a67b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 53 minutes ago&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.774 GB
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Now let us run a container with this image using the image id a02e6014a67b listed above by running the &lt;b&gt;&lt;i&gt;docker run&lt;/i&gt;&lt;/b&gt; command. The &lt;b&gt;&lt;i&gt;&lt;code&gt;--privileged&lt;/code&gt;&lt;/i&gt;&lt;/b&gt; flag gives &lt;i&gt;all&lt;/i&gt; capabilities to the container, and it also
lifts all the limitations enforced by the &lt;code&gt;device&lt;/code&gt; cgroup controller. In other
words, the container can then do almost everything that the host can do. This
flag exists to allow special use-cases, like running Docker within Docker. In our case, I want the systemctl command to work and the container run like a normal host.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$&lt;/span&gt; docker run -d -h &lt;a href=&quot;http://indimail.org/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;indimail.org&lt;/a&gt; --privileged a02e6014a67b /sbin/init&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
I have now figured out the you don&#39;t require the --privileged flag. This flag gives the container access to the host&#39;s systemd. A better way is to add SYS_ADMIN capability&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-color: rgb(47, 111, 171); border-style: dashed; border-width: 1px; margin-bottom: 1.5ex; margin-top: 0.5ex; overflow: auto; padding: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;docker run -ti --cap-add=SYS_ADMIN -e &quot;container-docker&quot; -v /sys/fs/cgroup:/sys/fs/cgroup:ro a02e6014a67b /sbin/init&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
The above will start a fully functional Fedora 23 OS with IndiMail, MySQL, sshd, httpd services up and running.&lt;br /&gt;
&lt;br /&gt;
We can list the running container by running the &lt;b&gt;&lt;i&gt;docker ps&lt;/i&gt;&lt;/b&gt; command&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$&lt;/span&gt; docker ps
CONTAINER ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CREATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAMES
fd09c7ca75be&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a02e6014a67b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;/sbin/init&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 38 seconds ago&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Up 37 seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      desperate_jones &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;
We now have a running container and can attach to it and use it like any functional host. Run the &lt;i&gt;docker exec&lt;/i&gt; command. The &lt;i&gt;&lt;b&gt;-ti&lt;/b&gt;&lt;/i&gt; option attaches a pseudo terminal and makes the session interactive.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;; font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;$&lt;/span&gt; docker exec -ti fd09c7ca75be /bin/bash --login
#
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;# &lt;/span&gt;/var/indimail/bin/svstat /service/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;; font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;; font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;trebuchet ms&amp;quot;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;/service/fetchmail: down 32 seconds&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
/service/greylist.1999: up (pid 203) 32 seconds
/service/indisrvr.4000: up (pid 178) 32 seconds
/service/inlookup.infifo: up (pid 192) 32 seconds
/service/mysql.3306: up (pid 181) 32 seconds
/service/proxy-imapd.4143: up (pid 191) 32 seconds
/service/proxy-imapd-ssl.9143: up (pid 188) 32 seconds
/service/proxy-pop3d.4110: up (pid 197) 32 seconds
/service/proxy-pop3d-ssl.9110: up (pid 179) 32 seconds
/service/pwdlookup: up (pid 195) 32 seconds
/service/qmail-imapd.143: up (pid 222) 32 seconds
/service/qmail-imapd-ssl.993: up (pid 200) 32 seconds
/service/qmail-pop3d.110: up (pid 212) 32 seconds
/service/qmail-pop3d-ssl.995: up (pid 184) 32 seconds
/service/qmail-poppass.106: up (pid 216) 32 seconds
/service/qmail-qmqpd.628: down 32 seconds
/service/qmail-qmtpd.209: up (pid 153) 32 seconds
/service/qmail-send.25: up (pid 182) 32 seconds
/service/qmail-smtpd.25: up (pid 187) 32 seconds
/service/qmail-smtpd.366: up (pid 208) 32 seconds
/service/qmail-smtpd.465: up (pid 194) 32 seconds
/service/qmail-smtpd.587: up (pid 196) 32 seconds
/service/qmail-spamlog: up (pid 221) 32 seconds
/service/qscanq: up (pid 213) 32 seconds
/service/udplogger.3000: up (pid 211) 32 seconds&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div dir=&quot;ltr&quot;&gt;
You now have a fully functional mail server with a pre-configured virtual domain indimail.org and a pre-configured virtual user testuser01@indimail.org. You can use IMAP/POP3/SMTP to your heart&#39;s content. If not satisfied, try out the ssl enabled services IMAPS/POP3S/SMTPS or STARTTLS command. If still not satisfied, read the man pages in /var/indimail/man/* :)&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
You can stop the container by executing the &lt;b&gt;&lt;i&gt;docker stop&lt;/i&gt;&lt;/b&gt; command.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;$&lt;/span&gt; docker &lt;span style=&quot;font-family: inherit;&quot;&gt;stop fd09c7ca75be&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
You can make your changes to the container and commit changes by using the docker commit command. Learning how to use docker is not difficult. Just follow the &lt;a href=&quot;https://docs.docker.com/&quot; target=&quot;_blank&quot;&gt;Docker Documentation&lt;/a&gt;. If you are lazy like me, just read the &lt;a href=&quot;https://docs.docker.com/mac/&quot; target=&quot;_blank&quot;&gt;Getting Started&lt;/a&gt; guide.&lt;br /&gt;
&lt;br /&gt;
I am also a newbie as far as docker is concerned. Do let me know your experience with network settings and other advanced docker topics, that you may be familiar with. Do send few bottles of beer my way if you can.&lt;br /&gt;
&lt;br /&gt;
NOTE: There are few defaults for the indimail docker container image&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;root password is passxxx@xxx&lt;/li&gt;
&lt;li&gt;mysql user, password for indimail is indimail, ssh-1.5-&lt;/li&gt;
&lt;li&gt;mysql privileged user, password is mysql, 4-57343-&lt;/li&gt;
&lt;li&gt;password for postmaster@indimail.org virtual imap/pop3 account is passxxx&lt;/li&gt;
&lt;li&gt;password for testuser01@indimail.org virtual imap/pop3 account is passxxx&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;</description><link>http://indimail.blogspot.com/2016/04/using-docker-engine-to-run-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>27</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-6754939050690801985</guid><pubDate>Wed, 20 Jul 2011 13:05:00 +0000</pubDate><atom:updated>2011-07-21T15:41:28.349+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail systemd</category><title>Using systemd to start IndiMail</title><description>&lt;a href=&quot;http://en.wikipedia.org/wiki/Systemd&quot;&gt;systemd&lt;/a&gt; is a system and service manager for Linux, compatible with SysV and &lt;a href=&quot;http://www.linuxfoundation.org/collaborate/workgroups/lsb&quot;&gt;LSB&lt;/a&gt; init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshots and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.&lt;br /&gt;
&lt;br /&gt;
The first step is to write the service configuration file for IndiMail as /lib/systemd/system/indimail.service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit; line-height: 16px;&quot;&gt;[Unit]
Description=IndiMail Messaging Platform
After=local-fs.target network.target

[Service]
ExecStart=/var/indimail/bin/svscanboot /service
ExecStop=/etc/init.d/indimail stop
Restart=on-failure
Type=simple

[Install]
WantedBy=multi-user.target&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
In Fedora 15, upstart has been replaced by a service called &lt;a href=&quot;https://fedoraproject.org/wiki/Features/systemd&quot;&gt;systemd&lt;/a&gt;. Due to improper rpm package upgrade scripts, some system services previously enabled in Fedora 14, may not be enabled after upgrading to Fedora 15. To determine if a service is impacted, run the systemctl status command as shown below.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: black; font-size: 2.6ex; line-height: 16px;&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: black; font-size: x-small; line-height: 16px;&quot;&gt;systemctl is-enabled indimail.service &amp;amp;&amp;amp; echo &quot;Enabled on boot&quot; || echo &quot;Disabled on boot&quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;To enable indimail service on boot, run the following systemctl command&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; margin-bottom: 1.5ex; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; line-height: 16px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 2.6ex;&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;systemctl enable indimail.service&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;Now to start IndiMail you can use the usual service command&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;# service indimail start    (to start indimail)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; line-height: normal; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;# service indimail stop     (to stop indimail)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;You can automate the above service creation for systemd by running the initsvc(1) command&lt;br /&gt;
&lt;div style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; line-height: normal; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;# /var/indimail/bin/initsvc -on  (to enable indimail service)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;# /var/indimail/bin/initsvc -off   (to disable indimail service)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;You can now also query the status of the running IndiMail service by using the systemctl command&lt;br /&gt;
&lt;div style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; line-height: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;# systemctl status indimail.service&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;indimail.service - IndiMail Messaging Platform
          Loaded: loaded (/lib/systemd/system/indimail.service)
          Active: active (running) since Wed, 20 Jul 2011 18:18:35 +0530; 10min ago
        Main PID: 4353 (svscanboot)
          CGroup: name=systemd:/system/indimail.service
                  ├ 4353 /bin/sh /var/indimail/bin/svscanboot
                  ├ 4356 /var/indimail/bin/svscan /service
                  ├ 4357 supervise log
                  ├ 4358 supervise clamd
                  ├ 4359 supervise log
                  ├ 4360 supervise freshclam
                  ├ 4361 supervise log
                  ├ 4362 supervise qmail-send.25
                  ├ 4363 supervise log
                  ├ 4364 supervise qmail-pop3d-ssl.995
                  ├ 4365 supervise log
                  ├ 4366 supervise proxy-imapd-ssl.9143
                  ├ 4367 supervise log
                  ├ 4368 supervise qmail-poppass.106
                  ├ 4369 supervise log
                  ├ 4370 supervise proxy-imapd.4143
                  ├ 4371 supervise log
                  ├ 4372 supervise proxy-pop3d-ssl.9110
                  ├ 4373 supervise log
                  ├ 4374 supervise qmail-smtpd.465
                  ├ 4375 supervise log
                  ├ 4376 supervise inlookup.infifo
                  ├ 4377 supervise log
                  ├ 4378 supervise qmail-smtpd.366
                  ├ 4379 supervise log
                  ├ 4380 supervise proxy-pop3d.4110
                  ├ 4381 supervise log
                  ├ 4382 supervise slapd.389
                  ├ 4383 supervise log
                  ├ 4384 supervise qmail-smtpd.587
                  ├ 4385 supervise log
                  ├ 4386 supervise pwdlookup
                  ├ 4387 supervise log
                  ├ 4388 supervise qmail-pop3d.110
                  ├ 4389 supervise log
                  ├ 4390 supervise qmail-qmtpd.209
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;                  ├ 4391 supervise log
                  ├ 4392 supervise fetchmail
                  ├ 4393 supervise log
                  ├ 4394 supervise qscanq
                  ├ 4395 supervise log
                  ├ 4396 supervise qmail-smtpd.25
                  ├ 4397 supervise log
                  ├ 4398 supervise mysql.3306
                  ├ 4399 supervise log
                  ├ 4400 supervise qmail-spamlog
                  ├ 4401 supervise log
                  ├ 4402 supervise qmail-qmqpd.628
                  ├ 4403 supervise log
                  ├ 4404 supervise qmail-imapd-ssl.993
                  ├ 4405 supervise log
                  ├ 4406 supervise indisrvr.4000
                  ├ 4407 supervise log
                  ├ 4408 supervise qmail-imapd.143
                  ├ 4409 supervise log
                  ├ 4410 supervise greylist.1999
                  ├ 4411 supervise log
                  ├ 4412 /var/indimail/bin/multilog t /var/log/indimail/fre...
                  ├ 4413 qmail-daemon ./Maildir/
                  ├ 4414 /var/indimail/bin/tcpserver -v -H -R -l 0 -x /var/...
                  ├ 4415 /var/indimail/bin/tcpserver -v -c /service/qmail-p...
                  ├ 4416 /var/indimail/bin/multilog t /var/log/indimail/pro...
                  ├ 4417 /var/indimail/bin/multilog t /var/log/indimail/pop...
                  ├ 4418 /var/indimail/bin/multilog t /var/log/indimail/pro...
                  ├ 4419 /var/indimail/bin/multilog t /var/log/indimail/pro...
                  ├ 4420 /var/indimail/bin/multilog t /var/log/indimail/pop...
                  ├ 4421 /var/indimail/bin/tcpserver -v -c /service/qmail-p...
                  ├ 4422 /var/indimail/bin/multilog t /var/log/indimail/pro...
                  ├ 4424 /var/indimail/bin/tcpserver -v -c /service/proxy-p...
                  ├ 4425 /var/indimail/bin/multilog t -* cleanq starting -*...
                  ├ 4426 /var/indimail/bin/tcpserver -v -h -R -l 0 -x /var/...
                  ├ 4427 /var/indimail/bin/tcpserver -v -c /service/proxy-i...
                  ├ 4428 /var/indimail/sbin/inlookup -i 5
                  ├ 4429 /var/indimail/bin/multilog t /var/log/indimail/mys...
                  ├ 4430 /var/indimail/bin/multilog t /var/log/indimail/smt...
                  ├ 4431 /var/indimail/sbin/nssd -d notice
                  ├ 4432 /var/indimail/bin/tcpserver -v -c /service/qmail-i...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;                  ├ 4433 /var/indimail/bin/multilog t /var/log/indimail/pwd...
                  ├ 4434 /var/indimail/bin/multilog t /var/log/indimail/smt...
                  ├ 4435 /var/indimail/bin/multilog t /var/log/indimail/pop...
                  ├ 4436 /var/indimail/bin/tcpserver -v -c /service/proxy-i...
                  ├ 4437 /var/indimail/bin/multilog t /var/log/indimail/inl...
                  ├ 4438 /usr/bin/perl /var/indimail/bin/greydaemon -w /var...
                  ├ 4439 /var/indimail/bin/tcpserver -v -c /service/qmail-i...
                  ├ 4440 /var/indimail/bin/tcpserver -v -h -R -l 0 -x /var/...
                  ├ 4441 /var/indimail/bin/multilog t /var/log/indimail/ima...
                  ├ 4442 /var/indimail/bin/tcpserver -v -H -R -l 0 -x /var/...
                  ├ 4443 /var/indimail/bin/multilog t /var/log/indimail/gre...
                  ├ 4444 /usr/local/mysql/libexec/mysqld --defaults-file=/v...
                  ├ 4445 /var/indimail/bin/tcpserver -v -H -R -l 0 -x /var/...
                  ├ 4446 /var/indimail/bin/qmail-cat /tmp/spamfifo
                  ├ 4447 /var/indimail/bin/multilog t /var/log/indimail/fet...
                  ├ 4448 /var/indimail/bin/multilog t /var/log/indimail/qmq...
                  ├ 4449 /var/indimail/bin/multilog t /var/log/indimail/smt...
                  ├ 4450 /var/indimail/bin/multilog t /var/log/indimail/qmt...
                  ├ 4451 /var/indimail/bin/tcpserver -v -H -R -l 0 -x /var/...
                  ├ 4452 /var/indimail/sbin/indisrvr -i 0 -p 4000 -b 40 -n ...
                  ├ 4453 /var/indimail/bin/multilog t /var/log/indimail/ind...
                  ├ 4454 /var/indimail/bin/multilog t /var/log/indimail/smt...
                  ├ 4455 /var/indimail/bin/multilog t /var/log/indimail/cla...
                  ├ 4456 /var/indimail/bin/multilog t /var/log/indimail/svs...
                  ├ 4457 /var/indimail/sbin/clamd
                  ├ 4458 /var/indimail/bin/multilog t /var/log/indimail/del...
                  ├ 4459 /var/indimail/bin/tcpserver -v -c /service/proxy-p...
                  ├ 4460 /var/indimail/bin/multilog t /var/log/indimail/spa...
                  ├ 4461 /var/indimail/bin/multilog t /var/log/indimail/ima...
                  ├ 4462 /bin/sh ./run
                  ├ 4477 /var/indimail/bin/multilog t /var/log/indimail/sla...
                  ├ 4509 /var/indimail/bin/freshclam -v --stdout --datadir=...
                  ├ 4519 /var/indimail/sbin/inlookup -i 5
                  ├ 4520 /var/indimail/sbin/inlookup -i 5
                  ├ 4521 /var/indimail/sbin/inlookup -i 5
                  ├ 4522 /var/indimail/sbin/inlookup -i 5
                  ├ 4523 /var/indimail/sbin/inlookup -i 5
                  ├ 4526 qmail-send
                  ├ 4527 qmail-send
                  ├ 4528 qmail-send
                  ├ 4529 qmail-send
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; margin-bottom: 1.5ex; margin-left: 0px; margin-right: 0px; margin-top: 0.5ex; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #f1f1e2; color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #222222; font-family: Verdana, Arial, &#39;Trebuchet MS&#39;; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Arial, &#39;Trebuchet MS&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 16px;&quot;&gt;                  ├ 4530 qmail-send
                  ├ 4531 qmail-lspawn ./Maildir/
                  ├ 4532 qmail-rspawn
                  ├ 4533 qmail-clean
                  ├ 4534 qmail-todo
                  ├ 4535 qmail-clean
                  ├ 4536 qmail-lspawn ./Maildir/
                  ├ 4537 qmail-rspawn
                  ├ 4538 qmail-clean
                  ├ 4539 qmail-todo
                  ├ 4540 qmail-clean
                  ├ 4541 qmail-lspawn ./Maildir/
                  ├ 4542 qmail-rspawn
                  ├ 4543 qmail-clean
                  ├ 4544 qmail-todo
                  ├ 4545 qmail-clean
                  ├ 4546 qmail-lspawn ./Maildir/
                  ├ 4547 qmail-rspawn
                  ├ 4548 qmail-clean
                  ├ 4549 qmail-todo
                  ├ 4550 qmail-clean
                  ├ 4551 qmail-lspawn ./Maildir/
                  ├ 4552 qmail-rspawn
                  ├ 4553 qmail-clean
                  ├ 4554 qmail-todo
                  ├ 4555 qmail-clean
                  ├ 4751 /bin/sh ./run
                  └ 4752 sleep 200&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://indimail.blogspot.com/2011/07/using-systemd-to-start-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-1640810815075446643</guid><pubDate>Tue, 05 Jul 2011 14:21:00 +0000</pubDate><atom:updated>2017-12-03T20:31:12.272+05:30</atom:updated><title>IndiMail Installation for newbies in &lt; 10 steps</title><description>


 
 
 
 &lt;style type=&quot;text/css&quot;&gt;h1 { margin-bottom: 0.08in; }h1.western { font-family: &quot;Liberation Sans&quot;, sans-serif; font-size: 18pt; }h1.cjk { font-family: &quot;Source Han Sans CN Regular&quot;; font-size: 18pt; }h1.ctl { font-family: &quot;Lohit Devanagari&quot;; font-size: 18pt; }pre.cjk { font-family: &quot;DejaVu Sans Mono&quot;, monospace; }p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }&lt;/style&gt;


&lt;br /&gt;
&lt;h1 class=&quot;western&quot; style=&quot;page-break-before: always;&quot;&gt;
Installing
Indimail using YUM/APT Repository&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;
Install OS&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;
OpenSUSE&lt;br /&gt;

 &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;
openSUSE Leap 42.3&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
openSUSE Leap 42.2 
   &lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
openSUSE 13.2&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
openSUSE 13.1&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
SUSE Linux Enterprise 12 SP2&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
SUSE Linux Enterprise 12 SP1&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
SUSE Linux Enterprise 12&lt;br /&gt;

  &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Red Hat&lt;br /&gt;

 &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;
Feodra 27&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Fedora 26&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Red Hat Enterprise Linux 7&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Red Hat Enterprise Linux 6&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
CentOS 7&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
CentOS 6&lt;br /&gt;

  &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Debian&lt;br /&gt;

 &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;
Debian 8.0&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Debian 7.0 
   &lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Ubuntu 17.04&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Ubuntu 16.10&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Ubuntu 16.04&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Ubuntu 14.04&lt;br /&gt;

   &lt;/li&gt;
&lt;li&gt;
Ubuntu 12.04 
   &lt;br /&gt;

  &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;
Click the below URL for Install Instructions&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
https://software.opensuse.org/download.html?project=home%3Aindimail&amp;amp;package=indimail&lt;/div&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Shutdown MySQL if already running and disable MySQL from
 being started up by the system % /etc/init.d/mysqld stop % sudo
 chkconfig mysqld off % /bin/rm -f /service/mysql.3306/down 
 &lt;br /&gt;

 &lt;/li&gt;
&lt;li&gt;
Start IndiMail&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
% sudo service indimail start&lt;/div&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;
Check Servicess&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
% sudo /usr/bin/svstat /service/*&lt;/div&gt;
&lt;pre class=&quot;western&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 100%; margin-bottom: 0.08in; margin-left: 0.49in; padding: 0.02in;&quot;&gt;/service/clamd: up (pid 1014) 2985 seconds
/service/dnscache: up (pid 1021) 2985 seconds
/service/fetchmail: down 2985 seconds
/service/freshclam: up (pid 1020) 2985 seconds
/service/greylist.1999: up (pid 1043) 2985 seconds
/service/indisrvr.4000: up (pid 1048) 2985 seconds
/service/inlookup.infifo: up (pid 1057) 2985 seconds
/service/mrtg: up (pid 1023) 2985 seconds
/service/mysql.3306: up (pid 1031) 2985 seconds
/service/proxy-imapd.4143: up (pid 1018) 2985 seconds
/service/proxy-imapd-ssl.9143: up (pid 1041) 2985 seconds
/service/proxy-pop3d.4110: up (pid 1017) 2985 seconds
/service/proxy-pop3d-ssl.9110: up (pid 1037) 2985 seconds
/service/pwdlookup: up (pid 1030) 2985 seconds
/service/qmail-imapd.143: up (pid 1046) 2985 seconds
/service/qmail-imapd-ssl.993: up (pid 1055) 2985 seconds
/service/qmail-logfifo: up (pid 1024) 2985 seconds
/service/qmail-pop3d.110: up (pid 1029) 2985 seconds
/service/qmail-pop3d-ssl.995: up (pid 1054) 2985 seconds
/service/qmail-poppass.106: up (pid 1022) 2985 seconds
/service/qmail-qmqpd.628: down 2985 seconds
/service/qmail-qmtpd.209: up (pid 1044) 2985 seconds
/service/qmail-send.25: up (pid 1026) 2985 seconds
/service/qmail-smtpd.25: up (pid 1050) 2985 seconds
/service/qmail-smtpd.366: up (pid 1019) 2985 seconds
/service/qmail-smtpd.465: up (pid 1027) 2985 seconds
/service/qmail-smtpd.587: up (pid 1012) 2985 seconds
/service/qscanq: up (pid 1036) 2985 seconds
/service/resolvconf: up (pid 1069) 2985 seconds
/service/udplogger.3000: up (pid 1061) 2985 seconds&lt;/pre&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;
Play with the System&lt;br /&gt;

 &lt;ol&gt;
&lt;li&gt;
Add A Domain&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
% sudo vadddomain example.com
password1&lt;/div&gt;
&lt;ol&gt;&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;
Add a User&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
% sudo vadduser &lt;a href=&quot;mailto:testuser@example.com&quot;&gt;user01@example.com&lt;/a&gt;
password2&lt;/div&gt;
&lt;ol&gt;&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;
Send email&lt;br /&gt;

 &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.98in;&quot;&gt;
swaks –to &lt;a href=&quot;mailto:youremail@yourdomain&quot;&gt;youremail@yourdomain&lt;/a&gt;
–from &lt;a href=&quot;mailto:user01@example.com&quot;&gt;user01@example.com&lt;/a&gt;
–server localhost&lt;/div&gt;
&lt;ol start=&quot;7&quot;&gt;
&lt;li&gt;
RTFM&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
% man indimail&lt;/div&gt;
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;
Buy Beer for Manvendra Bhangui&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

NOTE: The MySQL database gets installed with the user &#39;mysql&#39; with
all privileges and a user &#39;indimail&#39; with limited privileges. You
will find the passwords for these two users in the script
/usr/sbin/svctool. If you modify these, please don&#39;t forget to modify
/etc/indimail/control/host.mysql&lt;br /&gt;


&lt;ul style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , sans-serif; white-space: pre-wrap;&quot;&gt;
&lt;/span&gt;&lt;/ul&gt;
</description><link>http://indimail.blogspot.com/2011/07/indimail-installation-for-newbies-in-10.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>37</thr:total><georss:featurename>Chennai, Tamil Nadu, India</georss:featurename><georss:point>13.060422 80.24958300000003</georss:point><georss:box>12.916343000000001 80.157828500000036 13.204501 80.341337500000023</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-2433036238722665918</guid><pubDate>Thu, 30 Jun 2011 16:49:00 +0000</pubDate><atom:updated>2011-07-02T01:54:50.347+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail vdelivermail</category><title>Eliminating Duplicate Emails during local delivery</title><description>Often you will find program like MS outlook, notorious for sending duplicate emails, flooding your inbox. &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; allows you to quickly deal with this proprietary nonsense by turning on duplicate eliminator in &lt;b&gt;vdelivermail(8)&lt;/b&gt; - the default &lt;a href=&quot;http://en.wikipedia.org/wiki/Mail_delivery_agent&quot;&gt;MDA&lt;/a&gt;. To turn on the duplicate eliminator in vdelivermail, you need to set &lt;b&gt;ELIMINATE_DUPS&lt;/b&gt; and &lt;b&gt;MAKE_SEEKABLE&lt;/b&gt; environment variables.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;% su&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# echo 1&amp;gt; /service/qmail-send.25/variables/ELIMINATE_DUPS&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# echo 1&amp;gt; /service/qmail-send.25/variables/MAKE_SEEKABLE&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# svc -d /service/qmail-send.25; svc -u /service/qmail-send.25&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# exit&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If you do not use vdelivermail and want to use your own delivery agent? Fear not by using &lt;b&gt;ismaildup(1)&lt;/b&gt;. ismaildup expects the email on standard input and is easily scriptable like the example below in a .qmail file.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; | ismaildup /var/indimail/bin/maildirdeliver /home/manny/Maildir&lt;br /&gt;
&lt;br /&gt;
will deliver mails to /home/manny/Maildir while discarding duplicates.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with the 900 seconds (15 minutes) time interval for checking duplicates, you can change it by setting the &lt;b&gt;DUPLICATE_INTERVAL&lt;/b&gt; environment variable. The following will not allow a single duplicate to be entertained within 24 hours&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;% su&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# echo 86400 &amp;gt; /service/qmail-send.25/variables/DUPLICATE_INTERVAL&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# svc -d /service/qmail-send.25 ; svc -u /service/qmail-send.25&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;# exit&lt;/span&gt;</description><link>http://indimail.blogspot.com/2011/06/eliminating-duplicate-emails-during.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-1462235308828092762</guid><pubDate>Fri, 24 Jun 2011 11:09:00 +0000</pubDate><atom:updated>2011-06-25T14:35:03.699+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">procmail</category><title>Using procmail with Indimail</title><description>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;IndiMail follows the traditional UNIX philosophy.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&quot;Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface&quot;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;This allows IndiMail to interface with many programs written by others. IndiMail uses a powerful filter mechanism called vfilter(8). You may already be familiar with procmail. procmail is a mail delivery agent (MDA) capable of sorting incoming mail into various directories and filtering out messages. There are three ways in which you can use procmail with IndiMail.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;1.&amp;nbsp;&lt;b&gt;inside .qmail&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Users can use&lt;/div&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;| preline procmail
&lt;/pre&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;from ~/.qmail. They will need to use a full path for procmail unless procmail is in the system&#39;s startup PATH.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;2.&amp;nbsp;&lt;b&gt;Edit .qmail-default&lt;/b&gt;&lt;/div&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;| preline -f procmail -p -m /var/indimail/etc/procmailrc
&lt;/pre&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;3.&amp;nbsp;&lt;b&gt;Have an alias&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;You can use valias(1) to create an alias to call procmail. The following alias calls procmail to deliver the mail using /var/indimail/etc/procmailrc as a procmail recipe&lt;/div&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;valias -i &quot;|/var/indimail/bin/preline -f /usr/bin/procmail -p -m /var/indimail/etc/procmailrc&quot; testuser@example.co&lt;/span&gt;m
&lt;/pre&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;The following procmailrc puts virus infected mails in /tmp/Maildir and calls maildirdeliver(1) to deliver the mail to /home/mail/T2Zsym/example.com/testuser01/Maildir.&lt;/div&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;SHELL=/bin/bash
VERBOSE=&quot;no&quot;
unset DTLINE
unset RPLINE
:0w
*^X-Virus-Status: INFECTED
/tmp/Maildir/.Virus
:0w
| /var/indimail/bin/maildirdeliver /home/mail/T2Zsym/example.com/testuser01/Maildir&lt;/span&gt;
&lt;/pre&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;You can replace maildirdeliver in the last line with vdelivermail(8)&lt;/div&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;| /var/indimail/bin/vdelivermail &#39;&#39;&lt;b&gt;&lt;i&gt; bounce-no-mailbox&lt;/i&gt;&lt;/b&gt;
&lt;/pre&gt;&lt;a href=&quot;&quot; id=&quot;Writing_Filters_for_IndiMail&quot; name=&quot;Writing_Filters_for_IndiMail&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #002bb8; text-decoration: none;&quot;&gt;&lt;/a&gt;&lt;h2 style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; color: black; font-size: 19px; font-weight: bold; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;</description><link>http://indimail.blogspot.com/2011/06/using-procmail-with-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-173881349442874112</guid><pubDate>Sat, 18 Jun 2011 05:34:00 +0000</pubDate><atom:updated>2011-09-23T09:09:31.420+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail filter</category><title>Writing Filters for IndiMail</title><description>IndiMail provides multiple methods by which you can intercept an email in transit and modify the email headers or the email body. A filter is a simple program that expects the raw email on standard input and outputs the message text back on standard output. The program /bin/cat can be used as a filter which simply copies the standard input to standard output without modifying anything. Some methods can be used before the mail gets queued and some methods can be used before the execution of local / remote delivery.&lt;br /&gt;&lt;br /&gt;It is not necessary for a filter to modify the email. You can have a filter just to extract the headers or body and use that information for some purpose. IndiMail also provides the following programs - 822addr(1), 822headerfilter(1), 822bodyfilter(1), 822field(1),  822fields(1), 822header(1), 822body(1), 822headerok(1), 822received(1), 822date(1), 822fields(1) to help in processing emails.&lt;br /&gt;&lt;br /&gt;Let us say that we have written a script /usr/local/bin/myfilter. The myfilter program expects the raw email on stdin and outputs the email back (maybe modiying it) on stdout.&lt;h1 class=&quot;western&quot;&gt;



&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 19px;&quot;&gt;1.1&amp;nbsp;&lt;b&gt;Filtering during SMTP (before mail gets queued)&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h1 class=&quot;western&quot;&gt;



&lt;span class=&quot;Apple-style-span&quot;&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.1.1&amp;nbsp;&lt;b&gt;Using FILTERARGS environment variable&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
The below configuration causes all inbound SMTP email to be fed through the filter /usr/local/bin/myfilter. You can use the programs 822header(1), 822body(1) inside myfilter to get and manipulate the headers and body (See 1.5.1).&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;% su root
# echo /usr/local/bin/myfilter &amp;gt; /service/qmail-smtpd.25/variables/FILTERARGS
# svc -d /service/qmail-smtpd.25
# svc -u /service/qmail-smtpd.25
&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: If the program myfilter returns 100, the message will be bounced. If it returns 2, the message will be discarded (blackholed).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.1.2&amp;nbsp;&lt;b&gt;Using QMAILQUEUE with qmail-qfilter&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
You can use&amp;nbsp;&lt;b&gt;qmail-qfilter(1)&lt;/b&gt;. qmail-qfilter allows you to run multiple filters passed as command line arguments to qmail-qfilter. Since QMAILQUEUE doesn&#39;t allow you to specify multiple arguments, you can write a shell script which calls qmail-qfilter and have the shell script defined as QMAILQUEUE environment variable.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;% su root
# echo /var/indimail/bin/qmail-qfilter /usr/local/bin/myfilter &amp;gt; /usr/local/bin/qfilter
# chmod +x /usr/local/bin/qfilter
# echo /usr/local/bin/qfilter &amp;gt; /service/qmail-smtpd.25/variables/QMAILQUEUE
# echo /var/indimail/bin/qmail-dk &amp;gt; /service/qmail-smtpd.25/variabels/QQF_QMAILQUEUE
# svc -d /service/qmail-smtpd.25
# svc -u /service/qmail-smtpd.25
&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: you can define QQF_MAILQUEUE to /var/indimail/bin/qmail-nullqueue to discard the mail (blackhole).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.1.3&amp;nbsp;&lt;b&gt;Using QMAILQUEUE with your own program&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
When you want to use your own program as QMAILQUEUE, then your program is responsible for queuing the email. It is trivial to queue the email by calling qmail-multi(8). You script can read the stdin for the raw message (headers + body) and pipe the output (maybe after modifications) to qmail-multi(8). If you are doing DK/DKIM signing, you can execute qmail-dk(8) instead of qmail-multi(8). You can have qmail-dk(8) call qmail-dkim(8) and qmail-dkim(8) calls qmail-multi(8). Assuming you want to do DK/DKIM signing, and myfilter calls qmail-dk(8), you can do the following&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;% su root
# echo /usr/local/bin/myfilter &amp;gt; /service/qmail-smtpd.25/variables/QMAILQUEUE
# echo /var/indimail/bin/qmail-dkim &amp;gt; /service/qmail-smtpd.25/variables/DKQUEUE
# echo /var/indimail/bin/qmail-multi &amp;gt; /service/qmail-smtpd.25/variables/DKIMQUEUE
# svc -d /service/qmail-smtpd.25
# svc -u /service/qmail-smtpd.25
&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: You can set the environment variable NULLQUEUE before calling qmail-multi to discard the mail completely (blackhole).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.2&amp;nbsp;&lt;b&gt;Filtering during local / remote delivery&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.2.1&amp;nbsp;&lt;b&gt;Using FILTERARGS environment variable&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
The below configuration causes all local / remote deliveries to be fed through the filter /usr/local/bin/myfilter. You can use the programs 822header(1), 822body(1) inside myfilter to get and manipulate the headers and body.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;% su root
# echo /usr/local/bin/myfilter &amp;gt; /service/qmail-send.25/variables/FILTERARGS
# svc -d /service/qmail-send.25
# svc -u /service/qmail-send.25
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
If you want to filter only for local delivery or only for remote delivery, you can use the environment variable QMAILLOCAL or QMAILREMOTE. QMAILLOCAL is defined only for local deliveries while QMAILREMOTE is defined only for remote deliveries.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: If the program myfilter returns 100, the message will be bounced. If it returns 2, the message will be discarded (blackholed).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
e.g. the below script skips filtering for remote deliveries&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;#!/bin/sh
if [ -n “$QMAILREMOTE” ]&amp;nbsp;; then
    exec /bin/cat
fi
# rest of the script
...
...
exit 0
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.2.2&amp;nbsp;&lt;b&gt;Using control file filterargs&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
The control file filterargs gives you control to run filters individually for local or remote deliveries. It also allows you to run your filter for both local and remote deliveries. See spawn-filter(8) for full description on this control file&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
e.g. The following entry in /var/indimail/control/filterargs causes all mails to yahoo.com be fed through the filter dk-filter(8) for DK/DKIM signing.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;yahoo.com:remote:/var/indimail/bin/dk-filter
&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: If the program myfilter returns 100, the message will be bounced. If it returns 2, the message will be discarded (blackholed).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.2.3&amp;nbsp;&lt;b&gt;Using QMAILLOCAL or QMAILREMOTE environment variables&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
If you define QMAILLOCAL, indimail will execute the program/script defined by the QMAILLOCAL variable for all local deliveries. The arguments passed to this program/script will be the same as that for qmail-local(8).&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
Similarly, if you define QMAILREMOTE, indimail will execute the program/script defined by the QMAILREMOTE variable for all remote deliveries. The argument passed to this program/script are the same as that for qmail-remote(8).&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
The raw email (header + body) is available on stdin. You can use 822header(8), 822body(8) for getting the headers and body. After your program is through with filtering, the output should be piped to qmail-local(8) for local deliveries and qmail-remote(8) for remote deliveries. You need to also call qmail-local / qmail-remote with the same arguments. i.e&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;exec qmail-local  &quot;$@&quot;     #(for local deliveries)
exec qmail-remote &quot;$@&quot;     #(for remote deliveries)
&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: You can exit with value 0 instead of calling qmail-local / qmail-remote to discard the mail completely (blackhole)
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.3&amp;nbsp;&lt;b&gt;Using dot-qmail(5) or valias(1)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
&lt;br /&gt;
Both .qmail files and valias mechanism allows you to execute your own programs for local deliveries. See the man pages for dot-qmail(5) and valias(1) for more details. After manipulating the original raw email on stdin, you can pipe the out to the program maildirdeliver(1) for the final delivery.&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
Assuming you write the program myscript to call maildirdeliver program, you can use the valias command to add the following alias&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;% valias -i &quot;|/usr/local/bin/myfilter&quot; testuser01@example.com
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
Now any mail sent to testuser01@example.com will be given to the program /usr/local/bin/myfilter as standard input.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: you can exit with value 0 instead of calling the maildirdeliver program to discard the mail completely (blackhole).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.4&amp;nbsp;&lt;b&gt;Using IndiMail rule based filter - vfilter&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
IndiMail&#39;s vfilter(8) mechanism allows you to create rule based filter based on any keyword in the message headers or message body. You can create a vfilter by calling the vcfilter(1) program.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;% vcfilter -i -t myfilter -h 2 -c 0 -k &quot;failure notice&quot; -f /NoDeliver -b &quot;2|/usr/local/bin/myfilter&quot; testuser01@example.com
&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;NOTE: you can exit with value 0 instead of putting anything on standard output to discard the mail completely (blackhole).
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.5&amp;nbsp;&lt;b&gt;Examples Filters&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
e.g. the below filter looks for emails having &quot;failure notice&quot; in the subject line and inserts the line &quot;sorry about that&quot; in the first line of the message body and puts the line “sent by IndiMail Messaging platform” in the last line&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.5.1&amp;nbsp;&lt;b&gt;FILTERARGS script&lt;/b&gt;&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;#bin/sh
# create a temporary file
tmp_file=`mktemp -p /var/tmp -t myfilter.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file
    exit 111
fi
# Copy the stdin
/bin/cat &amp;gt; $tmp_file
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file
    exit 111
fi
subject=`/var/indimail/bin/822header -I Subject &amp;lt; $tmp_file`
echo $subject | grep &quot;failure notice&quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
if [ $? -eq 0 ]&amp;nbsp;; then
    (
    /var/indimail/bin/822header &amp;lt; $tmp_file
    echo
    echo &quot;sorry about that&quot;
    /var/indimail/bin/822body &amp;lt; $tmp_file
    echo &quot;sent by IndiMail Messaging platform&quot;
    )
else
    /bin/cat $tmp_file
fi
/bin/rm -f $tmp_file
exit 0
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.5.2&amp;nbsp;&lt;b&gt;QMAILQUEUE script&lt;/b&gt;&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;#!/bin/sh
# create a temporary file
inp_file=`mktemp -p /var/tmp -t myfilteri.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file
    exit 111
fi
out_file=`mktemp -p /var/tmp -t myfiltero.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
/bin/cat &amp;gt; $inp_file
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
subject=`/var/indimail/bin/822header -I Subject &amp;lt; $inp_file`
echo $subject | grep &quot;failure notice&quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
if [ $? -eq 0 ]&amp;nbsp;; then
    (
    /var/indimail/bin/822header &amp;lt; $inp_file
    echo
    echo &quot;sorry about that&quot;
    /var/indimail/bin/822body &amp;lt; $inp_file
    echo &quot;sent by IndiMail Messaging platform&quot;
    ) &amp;gt; $out_file
    if [ $? -ne 0 ]&amp;nbsp;; then
        /bin/rm -f $inp_file $out_file
        exit 111
    fi
    exec 0&amp;lt;$out_file
else
    exec 0&amp;lt;$inp_file
fi
/bin/rm -f $inp_file $out_file
# queue the message
exec /var/indimail/bin/qmail-multi
exit 111
&lt;/pre&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.5.3&amp;nbsp;&lt;b&gt;QMAILREMOTE script&lt;/b&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; font-weight: normal; line-height: 19px;&quot;&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;#!/bin/sh
# This scripts expects qmail-remote arguments on command line
# argv0          - qmail-remote
# argv1          - host   (host)
# argv2          - sender (sender)
# argv3          - qqeh   (qmail queue extra header)
# argv4          - size
# argv5 .. argvn - recipients
# 
#
host=$1
sender=$2
qqeh=$3
size=$4
shift 4
#
# if needed you can modify host, sender, qqeh, size args above
#
if [ -z &quot;$QMAILREMOTE&quot; ]&amp;nbsp;; then # execute qmail-local
    # call spawn-filter so that features like
    # FILTERARGS, SPAMFILTER are not lost
    exec -a qmail-local /var/indimail/bin/spawn-filter &quot;$@&quot;
fi
if [ &quot; $CONTROLDIR&quot; = &quot; &quot; ]&amp;nbsp;; then
   FN=/var/indimail/control/filterargs
else
   FN=$CONTROLDIR/filterargs
fi
if [ -n &quot;$SPAMFILTER&quot; -o -n &quot;$FILTERARGS&quot; -o -f $FN ]&amp;nbsp;; then
   # execute spawn-filter if you have filters defined for remote/local deliveries
   PROG=&quot;bin/spawn-filter&quot;
else
   PROG=&quot;bin/qmail-remote&quot;
fi
# create a temporary file
inp_file=`mktemp -p /var/tmp -t myfilteri.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file
    exit 111
fi
out_file=`mktemp -p /var/tmp -t myfiltero.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
/bin/cat &amp;gt; $inp_file
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
subject=`/var/indimail/bin/822header -I Subject &amp;lt; $inp_file`
echo $subject | grep &quot;failure notice&quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
if [ $? -eq 0 ]&amp;nbsp;; then
    (
    /var/indimail/bin/822header &amp;lt; $inp_file
    echo
    echo &quot;sorry about that&quot;
    /var/indimail/bin/822body &amp;lt; $inp_file
    echo &quot;sent by IndiMail Messaging platform&quot;
    ) &amp;gt; $out_file
    if [ $? -ne 0 ]&amp;nbsp;; then
        /bin/rm -f $inp_file $out_file
        exit 111
    fi
    exec 0&amp;lt;$out_file
else
    exec 0&amp;lt;$inp_file
fi
/bin/rm -f $inp_file $out_file
# $PROG points to spawn-filter if FILTERARGS or SPAMFILTER is set
# use $PROG so that features like FILTERARGS, SPAMFILTER are not lost
exec -a qmail-remote $PROG &quot;$host&quot; &quot;$sender&quot; &quot;$qqeh&quot; $size $*
exit 111&lt;/pre&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; font-weight: normal; line-height: 19px;&quot;&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
1.5.4&amp;nbsp;&lt;b&gt;QMAILLOCAL script&lt;/b&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; font-weight: normal; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;#!/bin/sh
# This scripts expects qmail-local arguments on command line
# argv0          - qmail-local
# argv1          - user
# argv2          - homedir
# argv3          - local
# argv4          - dash
# argv5          - ext
# argv6          - domain
# argv7          - sender
# argv8          - defaultdelivery (mbox, Maildir)
# argv9          - qqeh
#
user=$1
homedir=$2
local=$3
dash=$4
ext=$5
domain=$6
sender=$7
defaultdel=$8
qqeh=$9

if [ -z &quot;$QMAILLOCAL&quot; ]&amp;nbsp;; then # execute qmail-remote
    # call spawn-filter so that features like
    # FILTERARGS, SPAMFILTER are not lost
    exec -a qmail-remote /var/indimail/bin/spawn-filter &quot;$@&quot;
fi
# create a temporary file
inp_file=`mktemp -p /var/tmp -t myfilteri.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file
    exit 111
fi
out_file=`mktemp -p /var/tmp -t myfiltero.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
/bin/cat &amp;gt; $inp_file
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
subject=`/var/indimail/bin/822header -I Subject &amp;lt; $inp_file`
echo $subject | grep &quot;failure notice&quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
if [ $? -eq 0 ]&amp;nbsp;; then
    (
    /var/indimail/bin/822header &amp;lt; $inp_file
    echo
    echo &quot;sorry about that&quot;
    /var/indimail/bin/822body &amp;lt; $inp_file
    echo &quot;sent by IndiMail Messaging platform&quot;
    ) &amp;gt; $out_file
    if [ $? -ne 0 ]&amp;nbsp;; then
        /bin/rm -f $inp_file $out_file
        exit 111
    fi
    exec 0&amp;lt;$out_file
else
    exec 0&amp;lt;$inp_file
fi
/bin/rm -f $inp_file $out_file

# call spawn-filter so that features like
# FILTERARGS, SPAMFILTER are not lost
exec -a qmail-local /var/indimail/bin/spawn-filter &quot;$@&quot;
exit 111&lt;/pre&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;
1.5.5&amp;nbsp;&lt;b&gt;valias / vfilter script&lt;/b&gt;&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border-bottom-color: rgb(47, 111, 171); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(47, 111, 171); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(47, 111, 171); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(47, 111, 171); border-top-style: dashed; border-top-width: 1px; color: black; line-height: 1.1em; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;#!/bin/sh
# create a temporary file
inp_file=`mktemp -p /var/tmp -t myfilteri.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file
    exit 111
fi
out_file=`mktemp -p /var/tmp -t myfiltero.XXXXXXXXXXXXXXX`
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
/bin/cat &amp;gt; $inp_file
if [ $? -ne 0 ]&amp;nbsp;; then
    /bin/rm -f $inp_file $out_file
    exit 111
fi
subject=`/var/indimail/bin/822header -I Subject &amp;lt; $inp_file`
echo $subject | grep &quot;failure notice&quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
if [ $? -eq 0 ]&amp;nbsp;; then
    (
    /var/indimail/bin/822header &amp;lt; $inp_file
    echo
    echo &quot;sorry about that&quot;
    /var/indimail/bin/822body &amp;lt; $inp_file
    echo &quot;sent by IndiMail Messaging platform&quot;
    ) &amp;gt; $out_file
    if [ $? -ne 0 ]&amp;nbsp;; then
        /bin/rm -f $inp_file $out_file
        exit 111
    fi
    exec 0&amp;lt;$out_file
else
    exec 0&amp;lt;$inp_file
fi
/bin/rm -f $inp_file $out_file
#
# unset RPLINE so that maildirdeliver does not add a duplicate Return-Path line
# unset PWSTRUCT so that password structure cached is removed for vuserinfo to
# work correctly
#
unset RPLINE PWSTRUCT
dir=`/var/indimail/bin/vuserinfo -d testuser01@example.com | cut -d: -f2 |cut -c2-`

if [ $? -ne 0 -o &quot; $dir&quot; = &quot; &quot; ]&amp;nbsp;; then
    echo &quot;unable to get user&#39;s homedir&quot; 1&amp;gt;&amp;amp;1
    exit 111
fi
exec /var/indimail/bin/maildirdeliver &quot;$dir&quot;/Maildir
exit 111&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
</description><link>http://indimail.blogspot.com/2011/06/writing-filters-for-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-3569640946740838787</guid><pubDate>Fri, 03 Jun 2011 09:21:00 +0000</pubDate><atom:updated>2017-12-03T13:29:31.086+05:30</atom:updated><title>Explanation of email delivery mechanism for local users</title><description>&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Any email that needs to be delivered needs to be put into a queue before it can be taken up for delivery. Email can be submitted to the queue using qmail-queue command or qmail_open() function. The following programs use the qmail_open() API -&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;condredirect,&amp;nbsp;dot-forward,&amp;nbsp;fastforward,&amp;nbsp;filterto,&amp;nbsp;forward,&amp;nbsp;maildirserial,&amp;nbsp;new-inject,&amp;nbsp;ofmipd,&amp;nbsp;qmail-inject,&amp;nbsp;qmail-local,&amp;nbsp;qmail-qmqpd,&amp;nbsp;qmail-qmtpd,&amp;nbsp;qmail-queue,&amp;nbsp;qmail-send,&amp;nbsp;qreceipt,&amp;nbsp;replier,&amp;nbsp;rrforward,&amp;nbsp;qmail-smtpd.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Of these, qmail-smtpd and qmail-qmtpd accept an email for a domain only if the domain is listed in rcpthosts. Once an email is accepted into the queue, qmail-send(8) decides if the mail is to be delivered locally or to a remote address. If the email address corresponds to a domain listed in locals or virtualdomains control file, steps are taken to have the email delivered locally.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Delivery Mode&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;The delivery mode depends on the argument passed to qmail-daemon during startup. The script /service/qmail-send.25/run passes the content of the file /var/indimail/control/defaultdelivery as an argument to qmail-daemon.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;See&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;INSTALL.mbox&lt;/span&gt;&lt;/tt&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;INSTALL.maildir&lt;/span&gt;&lt;/tt&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;, and&amp;nbsp;&lt;/span&gt;&lt;tt&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;INSTALL.vsm&lt;/span&gt;&lt;/tt&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&amp;nbsp;for more information.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;To select your default mailbox type, just enter the&amp;nbsp;&lt;i&gt;defaultdelivery&lt;/i&gt;&amp;nbsp;value from the table into&amp;nbsp;&lt;tt&gt;/var/indimail/control/defaultdelivery&lt;/tt&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;e.g., to select the standard&amp;nbsp;&lt;i&gt;qmail&lt;/i&gt;&amp;nbsp;&lt;tt&gt;Mailbox&lt;/tt&gt;&amp;nbsp;delivery, do:&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;echo ./Maildir/ &amp;gt; /var/indimail/control/defaultdelivery&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;Addresses&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
Once you have decided the delivery mode above, one needs to have some mechanism to assign a local address for the delivery. qmail (which is what IndiMail uses) offers the following mechanism&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;locals&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Any email addressed to&amp;nbsp;&lt;i&gt;user&lt;/i&gt;@&lt;i&gt;domain&lt;/i&gt;&amp;nbsp;listed in the file&amp;nbsp;&lt;b&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;/var/indimail/control/locals&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&amp;nbsp;will be delivered to the local user&amp;nbsp;&lt;b&gt;&lt;i&gt;user&lt;/i&gt;&lt;/b&gt;. If you have Maildir as the delivery mode and an email to user kanimoji@domain, with home directory /home/blackmoney, will be delivered to /home/blackmoney/Maildir/new&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;virtualdomains&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;The control file /var/indimail/control/virtualdomains allows you to have multiple domains configured on a single server. Entries in virtualdomains are&amp;nbsp;of the form:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;i&gt;&lt;b&gt;user&lt;/b&gt;&lt;/i&gt;&lt;b&gt;@&lt;/b&gt;&lt;i&gt;&lt;b&gt;domain&lt;/b&gt;&lt;/i&gt;&lt;b&gt;:&lt;/b&gt;&lt;i&gt;&lt;b&gt;prepend&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;i&gt;qmail&lt;/i&gt;&amp;nbsp;converts&amp;nbsp;&lt;tt&gt;&lt;i&gt;user&lt;/i&gt;@&lt;i&gt;domain&lt;/i&gt;&lt;/tt&gt;&amp;nbsp;to&amp;nbsp;&lt;tt&gt;&lt;i&gt;prepend&lt;/i&gt;-&lt;i&gt;user&lt;/i&gt;@&lt;i&gt;domain&lt;/i&gt;&lt;/tt&gt;&amp;nbsp;and treats the result as if&amp;nbsp;&lt;tt&gt;&lt;i&gt;domain&lt;/i&gt;&lt;/tt&gt;&amp;nbsp;was local. The&amp;nbsp;&lt;tt&gt;&lt;i&gt;user&lt;/i&gt;@&lt;/tt&gt;&amp;nbsp;part is optional. If it&#39;s omitted, the entry matches&amp;nbsp;all&amp;nbsp;&lt;tt&gt;@&lt;i&gt;domain&lt;/i&gt;&lt;/tt&gt;&amp;nbsp;addresses.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;When you run the command&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;i&gt;vadddomain example.com some_password&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;It will add the following entry in virtualdomains control file&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;i&gt;example.com:example.com&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;What this means is that any email addressed to&lt;i&gt;&amp;nbsp;user@example.com&lt;/i&gt;&amp;nbsp;will be delivered to the address&amp;nbsp;&lt;i&gt;example.com-user@example.com&lt;/i&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;IndiMail further uses qmail-users mechanism to deliver the email for users in a virtual domain. This is explained &amp;nbsp;below&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;qmail-users&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;The file &lt;b&gt;/var/indimail/users/assign&lt;/b&gt; assigns addresses to users.
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; white-space: normal;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;A simple assignment is a line of the form&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;b&gt;&lt;i&gt;=local:user:uid:gid:homedir:dash:ext:&lt;/i&gt;&lt;/b&gt;

Here &lt;i&gt;local&lt;/i&gt; is an address; &lt;i&gt;user&lt;/i&gt;, &lt;i&gt;uid&lt;/i&gt;, and &lt;i&gt;gid&lt;/i&gt; are the account name, uid, and gid o the user in charge of &lt;i&gt;local&lt;/i&gt;; and messages to &lt;i&gt;local&lt;/i&gt; will be controlled by&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: normal;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; white-space: normal;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;i&gt;homedir&lt;/i&gt;&lt;b&gt;/.qmail&lt;/b&gt;&lt;i&gt;dashext&lt;/i&gt;.&lt;/pre&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;white-space: normal;&quot;&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;If there are several assignments for the same &lt;i&gt;local&lt;/i&gt; address, &lt;b&gt;qmail-lspawn&lt;/b&gt; will use the first one&lt;/span&gt;. &lt;i style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;local&lt;/i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt; is interpreted without regard to case.&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: normal;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: normal;&quot;&gt;&lt;pre style=&quot;font-family: &#39;Times New Roman&#39;; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;A wildcard assignment is a line of the form&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; white-space: normal;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-family: &#39;Times New Roman&#39;; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: normal;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; white-space: normal;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif; white-space: normal;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;i&gt;+loc:user:uid:gid:homedir:dash:pre:&lt;/i&gt;&lt;/b&gt;

This assignment applies to any address beginning with &lt;i&gt;loc&lt;/i&gt;, including &lt;i&gt;loc&lt;/i&gt; itself. &amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;It means the same as

&lt;b&gt;&lt;i&gt;=locext:user:uid:gid:homedir:dash:preext:&lt;/i&gt;&lt;/b&gt;

for every string &lt;i&gt;ext&lt;/i&gt;.
&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;When you add a virtualdomain using vadddomain, you will have the following entry&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;+example.com-:example.com:555:555:/var/indimail/domains/example.com:-::&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;As stated earlier, &amp;nbsp;any email addressed to&amp;nbsp;&lt;i&gt;user@example.com&lt;/i&gt;&amp;nbsp;will be delivered to local user&amp;nbsp;&lt;i&gt;example.com-user@example.com&lt;/i&gt;&amp;nbsp;because of&amp;nbsp;&lt;i&gt;virtualdomains&lt;/i&gt;&amp;nbsp;control file. The above address can be looked as&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;=user@example.com:example.com:555:555:/var/indimail/domains/example.com:-:user:&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;So you can see that emails are controlled by .qmail-user in the directory /var/indimail/domains/example.com. if .qmail-user does not exist, then .qmail-default will be used&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Adding the entry&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;+example.com-customer_care-:example.com:555:555:/var/indimail/domains/example.com/cc:-::&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;will cause emails to customer_care-delhi@example.com, customer_care-mumba@example.com, etc to be handled by /var/indimail/domains/cc/.qmail-default (if .qmail-customer_care-delhi does does not exist).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Extension Addresses &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;


 
 
 
 &lt;style type=&quot;text/css&quot;&gt;pre.cjk { font-family: &quot;DejaVu Sans Mono&quot;, monospace; }p { margin-bottom: 0.1in; line-height: 120%; }&lt;/style&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;In the &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;qmail&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; system, you control all local addresses of the form &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;user&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;-&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;anything&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;, as well as the address &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;user&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; itself, where &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;user&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; is your account name.  Delivery to &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;user&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;-&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;anything&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; is controlled by the file &lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;homedir&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;.qmail-&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;anything&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;. (These rules may be changed by editing the assign file as given above in qmail-users.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The &lt;b&gt;alias&lt;/b&gt; user controls all other addresses.  Delivery to &lt;i&gt;user&lt;/i&gt; is controlled by the file &lt;i&gt;homedir&lt;/i&gt;/&lt;b&gt;.qmail-&lt;/b&gt;&lt;i&gt;user&lt;/i&gt;, where &lt;i&gt;homedir&lt;/i&gt; is &lt;b&gt;alias&lt;/b&gt;&#39;s home directory.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;In the following description, &lt;b&gt;qmail-local&lt;/b&gt; is handling a message addressed to &lt;i&gt;local&lt;/i&gt;@&lt;i&gt;domain&lt;/i&gt;, where &lt;i&gt;local&lt;/i&gt; is controlled by &lt;b&gt;.qmail-&lt;/b&gt;&lt;i&gt;ext&lt;/i&gt;.  Here is what it does.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If &lt;b&gt;.qmail-&lt;/b&gt;&lt;i&gt;ext&lt;/i&gt; is completely empty, &lt;b&gt;qmail-local&lt;/b&gt; follows the &lt;i&gt;defaultdelivery&lt;/i&gt; instructions set by your system administrator.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If &lt;b&gt;.qmail-&lt;/b&gt;&lt;i&gt;ext&lt;/i&gt; doesn&#39;t exist, &lt;b&gt;qmail-local&lt;/b&gt; will try some default &lt;b&gt;.qmail&lt;/b&gt; files.  For example, if &lt;i&gt;ext&lt;/i&gt; is &lt;b&gt;foo-bar&lt;/b&gt;, &lt;b&gt;qmail-local&lt;/b&gt; will try first &lt;b&gt;.qmail-foo-bar&lt;/b&gt;, then &lt;b&gt;.qmail-foo-default&lt;/b&gt;, and finally &lt;b&gt;.qmail-default&lt;/b&gt;.  If none of these exist, &lt;b&gt;qmail-local&lt;/b&gt; will bounce the message.  (Exception: for the basic &lt;i&gt;user&lt;/i&gt; address, &lt;b&gt;qmail-local&lt;/b&gt; treats a nonexistent &lt;b&gt;.qmail&lt;/b&gt; the same as an empty &lt;b&gt;.qmail&lt;/b&gt;.)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The vadddomain command creates the file .qmail-default in /var/domain/domains/domain_name. Hence any email addressed to user@example.com gets controlled by /var/indimail/domains/example.com/.qmail-default.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;WARNING:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; For security, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;qmail-local&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; replaces any dots in &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;ext&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; with colons before checking &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;.qmail-&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;ext&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.  For convenience, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;qmail-local&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; converts any uppercase letters in &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;ext&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; to lowercase.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;


&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
</description><link>http://indimail.blogspot.com/2011/06/explanation-of-email-delivery-mechanism.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-2104617470698585530</guid><pubDate>Fri, 22 Apr 2011 08:28:00 +0000</pubDate><atom:updated>2017-12-03T20:47:58.928+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">InLookup &quot;connection pooling&quot; MySQL</category><title>Database Connections made by IndiMail</title><description>


	
	
	
	&lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }&lt;/style&gt;


&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; uses MySQL for
storing information of virtual domain users. The table &#39;&lt;b&gt;indimail&lt;/b&gt;&#39;
stores important user information like password, access permissions,
quota and the mailbox path. Most of user related queries have to
lookup the &#39;&lt;b&gt;indimail&lt;/b&gt;&#39; table in MySQL.&lt;br /&gt;

Rather than making individual connections to MySQL for extracting
information from the &#39;&lt;b&gt;indimail&lt;/b&gt;&#39; table, IndiMail programs use
the service of the i&lt;b&gt;n&lt;/b&gt;&lt;b&gt;l&lt;/b&gt;&lt;b&gt;ookup(8)&lt;/b&gt; server. Programs
use an API function &lt;b&gt;inquery()&lt;/b&gt; to request service. InLookup is
a connection pooling server to serve requests for inquery() function.
It is implemented over two fifos. One fixed fifo for reading the
query and reading the path of a randomly generated fifo. The randomly
generated fifo is used for writing the&amp;nbsp;result of the query back.
inlookup(8) creates a read FIFO determined by the environment
variable INFIFO. If INFIFO is not defined, the default FIFO used is
/var/indimail/inquery/infifo. inlookup(8) then goes into an infinite
loop reading this FIFO. If INFIFO is not  an absolute path,
inlookup(8) uses environment variable FIFODIR to look for fifo named
by INFIFO variable. Inlookup(8) can be configured by setting
environment variables in /service/inlookup.info/variables&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
inlookup helps in optimizing
	connection to MySQL(1), by keeping the connections persistent.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
It also maintains the query
	result in a double link list.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
It uses binary tree algorithm to
	search the cache before actually sending the query to the database.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
IndiMail clients send requests
	for MySQL(1) queries to inlookup through the function inquery()
	using a fifo.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
The inquery() API uses the
	InLookup service only if the environment variable QUERY_CACHE is
	set. If this environment variable is not set, the inquery() function
	makes a direct connecton to MySQL. 
	&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Clients which are currently
	using inquery are qmail-smtpd(1), proxyimap(8), proxypop3(8),
	vchkpass(8) and authindi(8). 
	&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
inlookup(8) service is one of the reasons why IndiMail is
	able to serve million+ users using commodity hardware. 
	&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
The program inquerytest simulates all the queries which inlookup
supports and can be used as a test/diagnostic tool for submitting
queries to inlookup. e.g&lt;br /&gt;

&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;i&gt;&lt;b&gt;% sudo inquerytest -q 3 -i &quot;&quot;
user@example.com&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;


</description><link>http://indimail.blogspot.com/2011/04/database-connections-made-by-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-7093918044189099627</guid><pubDate>Fri, 15 Apr 2011 15:12:00 +0000</pubDate><atom:updated>2011-04-15T20:42:42.175+05:30</atom:updated><title>Plugin for qmail-smtpd</title><description>&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; now has a plugin functionality for qmail-smtpd. You can write your own plugin to carry out tasks during the MAIL, RCPT or the DATA phase of SMTP. &amp;nbsp;See the man page for &lt;b&gt;plugin_init(3)&lt;/b&gt; for details.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NAME&lt;/b&gt;&lt;br /&gt;
plugin_init() - Template for Dynamic SMTP Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SYNTAX&lt;/b&gt;&lt;br /&gt;
#include smtp_plugin.h&lt;br /&gt;
&lt;br /&gt;
char *from_plug(char *rip, char *from, char **mesg);&lt;br /&gt;
&lt;br /&gt;
char *rcpt_plug(char *rip, char *from, char *rcpt, char **mesg);&lt;br /&gt;
&lt;br /&gt;
char *data_plug(char *local, char *rip, char *rhost, char *rinfo, char **mesg);&lt;br /&gt;
&lt;br /&gt;
PLUGIN *plugin_init();&lt;br /&gt;
&lt;br /&gt;
typedef struct&lt;br /&gt;
{&lt;br /&gt;
int             (*mail_func) (char *, char *, char **);&lt;br /&gt;
int             (*rcpt_func) (char *, char *, char *, char **);&lt;br /&gt;
int             (*data_func) (char *, char *, char *, char *, char **);&lt;br /&gt;
} PLUGIN;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DESCRIPTION&lt;/b&gt;&lt;br /&gt;
PLUGIN  structure  has three components: mail_func is a pointer to function to be exe‐&lt;br /&gt;
cuted in the SMTP MAIL session.  rcpt_func is a pointer to function to be executed  in&lt;br /&gt;
the  SMTP RCPT session.  data_func is a pointer to function to be executed in the SMTP&lt;br /&gt;
DATA session.&lt;br /&gt;
&lt;br /&gt;
To write a SMTP plugin you have to write  the  plugin_init()  function.  Depending  on&lt;br /&gt;
which  phase  of  SMTP  (MAIL, RCPT, DATA) you want to call your function, you have to&lt;br /&gt;
write the from_plug, rcpt_plug, data_plug functions.&lt;br /&gt;
&lt;br /&gt;
The plugin_init() function can be written as below&lt;br /&gt;
&lt;br /&gt;
PLUGIN         *&lt;br /&gt;
plugin_init()&lt;br /&gt;
{&lt;br /&gt;
static PLUGIN   plug;&lt;br /&gt;
PLUGIN         *ptr;&lt;br /&gt;
&lt;br /&gt;
ptr = &amp;amp;plug;&lt;br /&gt;
ptr-&amp;gt;mail_func = from_plug;&lt;br /&gt;
ptr-&amp;gt;rcpt_func = rcpt_plug;&lt;br /&gt;
ptr-&amp;gt;data_func = data_plug;&lt;br /&gt;
return &amp;amp;plug;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
To compile the plugin you can use gcc(1).&lt;br /&gt;
&lt;br /&gt;
gcc -shared -rdynamic -nostartfiles -fPIC -s -O4 -o smtpd-plugin.so smtp_plugin.o&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;RETURN VALUE&lt;/b&gt;&lt;br /&gt;
The functions from_plug, rcpt_plug, data_plug must return 0 on  success.  These  func‐&lt;br /&gt;
tions  should  return  1  to terminate the sesson with a message. You can set your own&lt;br /&gt;
message by assigning mesg variable. If you have the below function in smtpd-plugin.so&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
rcpt_plug(char *remoteip, char *from, char *rcpt, char **mesg)&lt;br /&gt;
{&lt;br /&gt;
if (!strstr(rcpt, &quot;@yahoo.com&quot;))&lt;br /&gt;
{&lt;br /&gt;
*mesg = &quot;530 We are serious and don&#39;t Yahoo (#5.7.1)&lt;br /&gt;
return (1);&lt;br /&gt;
}&lt;br /&gt;
return (0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SEE ALSO&lt;/b&gt;&lt;br /&gt;
qmail-smtpd(8), dlopen(3), gcc(1)</description><link>http://indimail.blogspot.com/2011/04/plugin-for-qmail-smtpd.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-7538297959941938920</guid><pubDate>Fri, 01 Apr 2011 10:02:00 +0000</pubDate><atom:updated>2011-04-01T15:34:46.414+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">administration adminclient indisrvr</category><title>The AdminClient Protocol</title><description>IndiMail provides close to around 300 different programs as part of a flexible Enterprise Messaging Platform. You can carry administer the entire platform with around 45 of these programs. A program called &lt;b&gt;indisrvr(8)&lt;/b&gt; provides a way for users to secure execute these commands from any remote location. To execute these programs, you need to have an admin account on the IndiMail server. These accounts can be created by the &lt;b&gt;mgmtpass(8)&lt;/b&gt;&amp;nbsp;program. Once you have an admin account on the IndiMail server, you can further restrict users to certain programs using the &lt;b&gt;vpriv(8)&lt;/b&gt; program. vpriv can further modify privileges by allowing only certain options within a allowed program.&lt;br /&gt;
&lt;br /&gt;
To execute these programs on the IndiMail server, you need to connect to port 4000 and use the adminclient protocol. The adminclient protocol is described below by showing a conversation between a client and the server &#39;indisrvr&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
s - denotes server&lt;br /&gt;
c - denotes client&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s: &quot;Login: &quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c: &quot;userid\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s: &quot;Password: &quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c: &quot;password\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s: &quot;OK\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c: &quot;index command arg1 arg2 ...\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s: &lt;output above=&quot;&quot; any=&quot;&quot; command=&quot;&quot; if=&quot;&quot; of=&quot;&quot;&gt;&lt;/output&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c: &quot;\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s: &quot;RETURNSTATUS[return value of command]\n&quot;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;To execute &#39;vuserinfo&#39; you will need to do the following.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;% telnet 0 4000&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Trying 0.0.0.0...&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Connected to 0.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Escape character is &#39;^]&#39;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Login: admin&lt;lf&gt;&lt;/lf&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password: benhur20&lt;lf&gt;&lt;/lf&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OK&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7 vuserinfo -n manvendra@indimail.org&lt;lf&gt;&lt;/lf&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: manvendra@indimail.org&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;lf&gt;&lt;/lf&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RETURNSTATUS0&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Index value of &#39;7&#39; was used for vuserinfo. A privileged user &#39;admin&#39; with password &#39;benhur20&#39; was used to execute vuserinfo. Each command has an index. The values are given as below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;Index Commands&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;----- --------&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;00 &amp;nbsp; &amp;nbsp;vadduser&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;01 &amp;nbsp; &amp;nbsp;vpasswd&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;02 &amp;nbsp; &amp;nbsp;vdeluser&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;03 &amp;nbsp; &amp;nbsp;vsetuserquota&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;04 &amp;nbsp; &amp;nbsp;vbulletin&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;05 &amp;nbsp; &amp;nbsp;vmoduser&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;06 &amp;nbsp; &amp;nbsp;valias&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;07 &amp;nbsp; &amp;nbsp;vuserinfo&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;08 &amp;nbsp; &amp;nbsp;vipmap&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;09 &amp;nbsp; &amp;nbsp;vacation&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;10 &amp;nbsp; &amp;nbsp;vmoveuser&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;11 &amp;nbsp; &amp;nbsp;vrenameuser&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;12 &amp;nbsp; &amp;nbsp;crc&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;13 &amp;nbsp; &amp;nbsp;vcfilter&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;14 &amp;nbsp; &amp;nbsp;indiversion&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;15 &amp;nbsp; &amp;nbsp;vsmtp&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;16 &amp;nbsp; &amp;nbsp;dbinfo&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;17 &amp;nbsp; &amp;nbsp;vhostid&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;18 &amp;nbsp; &amp;nbsp;mgmtpass&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;19 &amp;nbsp; &amp;nbsp;inquerytest&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;20 &amp;nbsp; &amp;nbsp;printdir&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;21 &amp;nbsp; &amp;nbsp;shit&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;22 &amp;nbsp; &amp;nbsp;vaddaliasdomain&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;23 &amp;nbsp; &amp;nbsp;vadddomain&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;24 &amp;nbsp; &amp;nbsp;vcalias&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;25 &amp;nbsp; &amp;nbsp;vcaliasrev.sh&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;26 &amp;nbsp; &amp;nbsp;vconvert&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;27 &amp;nbsp; &amp;nbsp;vdeldomain&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;28 &amp;nbsp; &amp;nbsp;vrenamedomain&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;29 &amp;nbsp; &amp;nbsp;vdominfo&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;30 &amp;nbsp; &amp;nbsp;vfstab&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;31 &amp;nbsp; &amp;nbsp;vgroup&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;32 &amp;nbsp; &amp;nbsp;vatrn&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;33 &amp;nbsp; &amp;nbsp;vpriv&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;34 &amp;nbsp; &amp;nbsp;vlimit&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;35 &amp;nbsp; &amp;nbsp;hostcntrl&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;36 &amp;nbsp; &amp;nbsp;execmysql&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;37 &amp;nbsp; &amp;nbsp;updatefile&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;38 &amp;nbsp; &amp;nbsp;vreorg&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;39 &amp;nbsp; &amp;nbsp;vdeloldusers&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;40 &amp;nbsp; &amp;nbsp;ipchange&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;41 &amp;nbsp; &amp;nbsp;svctool&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;42 &amp;nbsp; &amp;nbsp;clearopensmtp&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;43 &amp;nbsp; &amp;nbsp;hostsync&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;44 &amp;nbsp; &amp;nbsp;inquerytest&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;45 &amp;nbsp; &amp;nbsp;vmoddomain&lt;/span&gt;&lt;/tt&gt; &lt;/div&gt;&lt;div&gt;&lt;tt&gt;&lt;span style=&quot;color: #1a1a1a;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/tt&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #1a1a1a; font-family: monospace;&quot;&gt;If you have a user provisioning interface written in your favourite language, you can connect to the port 4000 and execute the above programs. IndiMail also provides you a command line program &#39;&lt;b&gt;adminclient&lt;/b&gt;&#39; which can execute any of the above programs. Read the man page for adminclient for further details.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuNWaRXVJwC8iRXqcCJ58W7NzHqwOCTcRB98UKP79LUaVEf3_otqvzObmd6nuA0RtL-8PmA32OUT4s1uf410LRw19GISkW60PH0btfnFM2t9dDdn-KZjOdbRF95RRvpfmgqviZpj9hphw/s1600/adminclient.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuNWaRXVJwC8iRXqcCJ58W7NzHqwOCTcRB98UKP79LUaVEf3_otqvzObmd6nuA0RtL-8PmA32OUT4s1uf410LRw19GISkW60PH0btfnFM2t9dDdn-KZjOdbRF95RRvpfmgqviZpj9hphw/s320/adminclient.png&quot; width=&quot;311&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #1a1a1a; font-family: monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;</description><link>http://indimail.blogspot.com/2011/04/adminclient-protocol.html</link><author>noreply@blogger.com (cprogrammer)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuNWaRXVJwC8iRXqcCJ58W7NzHqwOCTcRB98UKP79LUaVEf3_otqvzObmd6nuA0RtL-8PmA32OUT4s1uf410LRw19GISkW60PH0btfnFM2t9dDdn-KZjOdbRF95RRvpfmgqviZpj9hphw/s72-c/adminclient.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-9154348977706867862</guid><pubDate>Sat, 08 Jan 2011 05:10:00 +0000</pubDate><atom:updated>2011-07-03T17:21:09.030+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">qmail-remote outgoingip &quot;remote delivery&quot;</category><title>Distributing your outgoing mails from Multiple IP addresses</title><description>Some mail providers like hotmail, yahoo restrict the number of connections from a single IP and&amp;nbsp;the number of mails that can be delivered in an hour from a single IP. To increase your ability&amp;nbsp;to deliver large number of genuine emails from your users to such sites, you may want to send out mails from multiple IP addresses.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; has the ability to call a custom program instead of &lt;b&gt;qmail-local(8)&lt;/b&gt; or &lt;b&gt;qmail-remote(8)&lt;/b&gt;.&amp;nbsp;This is done by defining the environment variable QMAILLOCAL or QMAILREMOTE. &lt;b&gt;qmail-remote(8)&lt;/b&gt; can&amp;nbsp;use the environment variable OUTGOINGIP to set the IP address of the local interface when making&amp;nbsp;outgoing connections. By writing a simple script and setting QMAILREMOTE environment variable&amp;nbsp;pointing to this script, one can randomly chose an IP address from the control file&lt;br /&gt;
&lt;br /&gt;
/var/indimail/control/outgoingip&lt;br /&gt;
&lt;br /&gt;
The script below also allows you to define multiple outgoing&amp;nbsp;IP addresses for a single host. e.g. you can create the control file&amp;nbsp;to send out mails from multiple IPs only for the domain hotmail.com&lt;br /&gt;
&lt;br /&gt;
/var/indimail/control/outgoingip.hotmail.com&lt;br /&gt;
&lt;br /&gt;
Let us name the below script balance_outgoing&lt;br /&gt;
&lt;br /&gt;
% su&lt;br /&gt;
# echo &quot;/var/indimail/bin/balance_outgoing&quot; &amp;gt; /service/qmail-send.25/variables/QMAILREMOTE&lt;br /&gt;
# svc -d /service/qmail-send.25&lt;br /&gt;
# svc -u /service/qmail-send.25&lt;br /&gt;
# exit&lt;br /&gt;
%&lt;br /&gt;
&lt;br /&gt;
Finally the balance_outgoing script can be placed with execute bit in /var/indimail/bin&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# This scripts expects qmail-remote arguments on command line&lt;br /&gt;
# argv0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- qmail-remote&lt;br /&gt;
# argv1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- host &amp;nbsp; (host)&lt;br /&gt;
# argv2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- sender (sender)&lt;br /&gt;
# argv3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- qqeh &amp;nbsp; (qmail queue extra header)&lt;br /&gt;
# argv4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- size&lt;br /&gt;
# argv5 .. argvn - recipients&lt;br /&gt;
# &lt;br /&gt;
#&lt;br /&gt;
host=$1&lt;br /&gt;
sender=$2&lt;br /&gt;
&lt;div&gt;&lt;div&gt;qqeh=$3&lt;/div&gt;&lt;div&gt;size=$4&lt;/div&gt;&lt;div&gt;shift 4&lt;br /&gt;
&lt;br /&gt;
cd /var/indimail&lt;/div&gt;&lt;div&gt;if [ &quot; $CONTROLDIR&quot; = &quot; &quot; ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FN=/var/indimail/control/filterargs&lt;/div&gt;&lt;div&gt;else&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FN=$CONTROLDIR/filterargs&lt;/div&gt;&lt;div&gt;fi&lt;/div&gt;&lt;div&gt;if [ -n &quot;$SPAMFILTER&quot; -o -n &quot;$FILTERARGS&quot; -o -f $FN ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;# execute spawn-filter if you have filters defined for remote/local deliveries&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PROG=&quot;bin/spawn-filter&quot;&lt;/div&gt;&lt;div&gt;else&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PROG=&quot;bin/qmail-remote&quot;&lt;/div&gt;&lt;div&gt;fi&lt;/div&gt;&lt;div&gt;if [ &quot; $CONTROLDIR&quot; = &quot; &quot; ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if [ -f /var/indimail/control/outgoingip.$host ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IP=(`cat /var/indimail/control/outgoingip.$host`)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;elif [ -f /var/indimail/control/outgoingip ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IP=(`cat /var/indimail/control/outgoingip`)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exec -a qmail-remote $PROG &quot;$host&quot; &quot;$sender&quot; &quot;$qqeh&quot; $size $*&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;/div&gt;&lt;div&gt;else&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if [ -f $CONTROLDIR/outgoingip.$host ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IP=(`cat $CONTROLDIR/outgoingip.$host`)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;elif [ -f $CONTROLDIR/outgoingip ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IP=(`cat $CONTROLDIR/outgoingip`)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exec -a qmail-remote $PROG &quot;$host&quot; &quot;$sender&quot; &quot;$qqeh&quot; $size $*&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;/div&gt;&lt;div&gt;fi&lt;/div&gt;&lt;div&gt;IP_COUNT=${#IP[*]}&lt;/div&gt;&lt;div&gt;if [ $IP_COUNT -gt 1 ] ; then&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;i=`expr $RANDOM % $IP_COUNT`&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;export OUTGOINGIP=${IP[$i]}&lt;/div&gt;&lt;div&gt;fi&lt;/div&gt;&lt;div&gt;exec -a qmail-remote $PROG &quot;$host&quot; &quot;$sender&quot; &quot;$qqeh&quot; $size $*&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</description><link>http://indimail.blogspot.com/2011/01/distributing-your-outgoing-mails-from.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-1502474128812385871</guid><pubDate>Mon, 02 Aug 2010 07:50:00 +0000</pubDate><atom:updated>2010-08-02T13:20:43.530+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail qmail-send</category><title>Handling Bounces yourself</title><description>&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; allows a mechanism by which you can use your own script/program to handle bounces. All bounces in IndiMail is generated by &lt;b&gt;qmail-send.&lt;/b&gt; &lt;b&gt;qmail-send&lt;/b&gt; generates a bounce when &lt;b&gt;qmail-lspawn&lt;/b&gt; or &lt;b&gt;qmail-rspawn&lt;/b&gt; reports a permanent failed delivery. A bounce is generated by qmail-send by injecting a new mail in the queue using qmail-queue. This bounce generation by qmail-send can be modified in three ways&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Using environment variable BOUNCEPROCESSOR&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
When you define the environment variable BOUNCEPROCESSOR as a valid path to a program or script, the program gets called whenever a delivery fails permanently. The program runs with the uid &lt;b&gt;&lt;i&gt;qmails&lt;/i&gt;&lt;/b&gt; and is passed the following five arguments&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;bounce_file bounce_report bounce_sender original_recipient bounce_recipient&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To set BOUNCEPROCESSOR, you would do the following&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;# echo &quot;path_of_your_bounce_processor&quot; &amp;gt; /service/qmail-send.25/variables/BOUNCEPROCESSOR&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
There are few email marketing companies who are using BOUNCEPROCESSOR to insert the status of all bounces in MySQL table for their email marketing campaigns.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2 Using environment variable BOUNCERULES or control files bounce.envrules&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Using envrules, you can set specific environment variables only for bounced recipients. The format of &amp;nbsp;this &amp;nbsp;file &amp;nbsp;is &amp;nbsp;of &amp;nbsp;the &amp;nbsp;form&lt;br /&gt;
&lt;br /&gt;
pat:envar1=val,envar2=val,...]&lt;br /&gt;
&lt;br /&gt;
where pat is a regular expression which matches a bounce recipient. &amp;nbsp;envar1,&amp;nbsp;envar2 are list of environment variables to be set. If var is omitted, the environment variable is unset.&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;support@indimail.org:CONTROLDIR=control2,QMAILQUEUE=/var/indimail/bin/qmail-nullqueue&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
causes all bounces generated for the sender support@indimail.org to be discarded.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Using BOUNCEQUEUE environment variable to queue bounces&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
qmail-send &amp;nbsp;uses &amp;nbsp;qmail-queue to queue bounces and aliases/forwards. This can be changed by using QMAILQUEUE environment variable. If a different queue program is desired for bounces, it can be set by using BOUNCEQUEUE environment variable.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;e.g&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;# echo /var/indimail/bin/qmail-nullqueue &amp;gt; /service/qmail-send.25/variables/BOUNCEQUEUE&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;disables bounces system-wide. Though disabling bounces may not be the right thing to do but in some situations where bounces are not at all needed, disabling bounces will surely result in performance improvements of your system, especially so if your system does mass-mailing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</description><link>http://indimail.blogspot.com/2010/08/handling-bounces-yourself.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-8299059948159754577</guid><pubDate>Tue, 13 Jul 2010 07:35:00 +0000</pubDate><atom:updated>2010-07-13T18:46:07.133+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">vdelivermail LDA dot-qmail</category><title>Delivery Instructions for a Virtual Domain</title><description>&lt;b&gt;&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt;&lt;/b&gt; uses a modified version of &lt;a href=&quot;http://cr.yp.to/qmail.html&quot;&gt;qmail&lt;/a&gt; as the &lt;a href=&quot;http://en.wikipedia.org/wiki/Message_transfer_agent&quot;&gt;MTA&lt;/a&gt;. For local deliveries, &lt;b&gt;qmail-lspawn&lt;/b&gt; reads a series of local delivery commands from descriptor 0, invokes &lt;b&gt;qmail-local&lt;/b&gt; to perform the deliveries. &lt;b&gt;qmail-local&lt;/b&gt; reads a mail message and delivers to to a user by the procedure described in &lt;b&gt;dot-qmail(5)&lt;/b&gt;. &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; uses &lt;b&gt;vdelivermail&lt;/b&gt; as the local delivery agent.&lt;br /&gt;
&lt;br /&gt;
A virtual domain is created by the command &lt;b&gt;vadddomain(1)&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;% vadddomain example.com some_password&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The above command creates a virtual domain with delivery instructions in &lt;i&gt;&lt;b&gt;/var/indimail/domains/example.com/.qmail-default&lt;/b&gt;&lt;/i&gt; file. A line in this file is of the form&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;/var/indimail/sbin/vdelivermail &#39;&#39; delivery_instruction_for_non_existing_user&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The delivery_instruction_for_non_existing_user can have one of the following 5 forms&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;delete&lt;/li&gt;
&lt;li&gt;bounce-no-mailbox&lt;/li&gt;
&lt;li&gt;Maildir&lt;/li&gt;
&lt;li&gt;emailAddress&lt;/li&gt;
&lt;li&gt;IPaddress&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Using &lt;b&gt;&lt;i&gt;delete&lt;/i&gt;&lt;/b&gt; as the delivery instruction causes IndiMail to discard all mails addressed to non-existing users. The original sender does not get notified of the delivery. On a real messaging system serving real users, you will not want to do this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The instruction &lt;b&gt;&lt;i&gt;bounce-no-mailbox&lt;/i&gt;&lt;/b&gt; causes a bounce to be generated to the sender in case an email is addressed to a non-existing user. This is the most common usage in &lt;b&gt;&lt;i&gt;.qmail-default&lt;/i&gt;&lt;/b&gt; which most IndiMail installations will have&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The instruction &lt;b&gt;&lt;i&gt;Maildir&lt;/i&gt;&lt;/b&gt; causes emails to be addressed to non-existing users to be saved in a &lt;a href=&quot;http://en.wikipedia.org/wiki/Maildir&quot;&gt;Maildir&lt;/a&gt;. Here &lt;b&gt;&lt;i&gt;Maildir&lt;/i&gt;&lt;/b&gt; should refer to a full path of an existing &lt;a href=&quot;http://en.wikipedia.org/wiki/Maildir&quot;&gt;Maildir&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The instruction &lt;b&gt;&lt;i&gt;emailAddress&lt;/i&gt;&lt;/b&gt; causes emails to be addressed to non-existing users to be forwarded to an email address &lt;b&gt;&lt;i&gt;emailAddress&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The instruction &lt;b&gt;IPaddress&lt;/b&gt; causes emails to be addressed to non-existing users to be redirected to a remote SMTP server at IP &lt;b&gt;&lt;i&gt;IPaddress&lt;/i&gt;&lt;/b&gt;. The format of &lt;b&gt;&lt;i&gt;IPaddress&lt;/i&gt;&lt;/b&gt; is &lt;b&gt;&lt;i&gt;domain:ip:port&lt;/i&gt;&lt;/b&gt; where &lt;b&gt;&lt;i&gt;domain&lt;/i&gt;&lt;/b&gt; is the domain name, &lt;b&gt;&lt;i&gt;ip&lt;/i&gt;&lt;/b&gt; is the IP address of the remote SMTP server and &lt;b&gt;&lt;i&gt;port&lt;/i&gt;&lt;/b&gt; is the SMTP port on the remote SMTP server. It is expected that the non-existing user is present on the remote system. This type of delivery is used by &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; on a clustered setup. In a clustered setup, users are distributed across multiple server. A particular user will be located only on one particular server. However, the same domain will be present on multiple servers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In the delivery instruction in &lt;b&gt;&lt;i&gt;.qmail-default&lt;/i&gt;&lt;/b&gt;, you can replace &lt;b&gt;vdelivermail&lt;/b&gt; with &lt;b&gt;vfilter&lt;/b&gt; to perform in-line filtering use &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&#39;s&lt;/a&gt; poweful &lt;b&gt;vfilter&lt;/b&gt;. You can create filters using the program &lt;b&gt;vcfilter&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</description><link>http://indimail.blogspot.com/2010/07/delivery-instructions-for-virtual.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-2767718935014126128</guid><pubDate>Thu, 08 Jul 2010 04:06:00 +0000</pubDate><atom:updated>2010-07-09T20:41:13.421+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">relaying SMTP indimail</category><title>Relaying - How does IndiMail handle relaying securely</title><description>A &lt;a href=&quot;http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol&quot;&gt;SMTP&lt;/a&gt; server is responsible for accepting mails from a sender and processing it for delivery to&amp;nbsp;one or more recipients. In most situations, for domains which are under your administrative&amp;nbsp;control (native addresses), the SMTP server should accept mails without authentication. However, when a mail is&amp;nbsp;submitted for delivery to domains which are not under your administrative control, you should&amp;nbsp;accept mails only after it satisfies security considerations like having the sender authenticate&amp;nbsp;itself. This is to prevent abuse of external domains using your &lt;a href=&quot;http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol&quot;&gt;SMTP&lt;/a&gt; server. A &lt;a href=&quot;http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol&quot;&gt;SMTP&lt;/a&gt; server which&amp;nbsp;accepts mails for external domains without any authentication is called an &lt;a href=&quot;http://encyclopedia.thefreedictionary.com/SMTP+relay&quot;&gt;open relay&lt;/a&gt;. The&amp;nbsp;act of accepting mails for external domains for delivery is called relaying.&lt;br /&gt;
&lt;br /&gt;
The default configuration of &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; configures the SMTP as a closed system. Hence to be&amp;nbsp;able to send mails to external domains, you need to setup mechanisms for relaying.&lt;br /&gt;
&lt;br /&gt;
There are many methods. Choose any of the below after studying them. I prefer 3 or 4 for&amp;nbsp;security reasons.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Have Sender&#39;s IP addresses in tcp.smtp file&lt;/li&gt;
&lt;li&gt;Use control file relayclients for IP addresses of clients allowed to relay mail through this&amp;nbsp;host.&lt;/li&gt;
&lt;li&gt;Configure &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; to use MySQL relay table (good security). This is implemented on POP3/IMAP before SMTP&lt;/li&gt;
&lt;li&gt;Use authenticated SMTP (good security)&lt;/li&gt;
&lt;li&gt;For allowing relay to specific domains use control file relaydomains&lt;/li&gt;
&lt;li&gt;For allowing specific users (native addresses) use control file relaymailfrom&lt;/li&gt;
&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;NOTE: you should use 1 &amp;amp; 2 only if if the host having the sender&#39;s IP is under your control and&amp;nbsp;you have good security policies for the host (however what is a good security can&amp;nbsp;be very subjective)&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Using tcp.smtp&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Your startup script for the qmail smtp server must use the tcpserver -x file option similar to&amp;nbsp;this startup line.&lt;br /&gt;
&lt;br /&gt;
env - PATH=&quot;/var/indimail/bin&quot; tcpserver -H -R -x /var/indimail/etc/tcp.smtp.cdb \&lt;br /&gt;
-c 20 -u 555 -g 555 0 smtp /var/indimail/bin/qmail-smtpd 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
IndiMail uses -x option to tcpserver and hence you need not bother about the above line. You however need to&amp;nbsp;edit /var/indimail/etc/tcp.smtp and put in lines for all static IP&#39;s that you will always&amp;nbsp;want to relay access to.&lt;br /&gt;
&lt;br /&gt;
127.0.0.:allow,RELAYCLIENT=””&lt;br /&gt;
10.1.1.:allow,RELAYCLIENT=””&lt;br /&gt;
&lt;br /&gt;
The above lines will cause &lt;b&gt;RELAYCLIENT&lt;/b&gt;&amp;nbsp;environment variable to be set for localhost and all machines on&amp;nbsp;the 10.1.1 class and hence allow to relay through. Remember that any user on hosts on 10.1.1&amp;nbsp;class will be able to relay mails. You many not want this. The line having 127.0.0. will allow any client on the &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; host to use SMTP and relay mails.&lt;br /&gt;
&lt;br /&gt;
If you add any IP to tcp.smtp, you have to rebuild a cdb database tcp.smtp.cdb. You can run the following command&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;% sudo /var/indimail/bin/qmailctl cdb&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;NOTE:&lt;/b&gt; Remember that you are exposed to&amp;nbsp;unrestricted&amp;nbsp;relaying from any of the IP addresses listed in tcp.smtp&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Using control file relayclients&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
IP addresses of clients allowed to relay mail &amp;nbsp;through &amp;nbsp;this &amp;nbsp;host. &amp;nbsp; Each&amp;nbsp;address should be followed by a colon and an (optional) string that should&amp;nbsp;be appended to each incoming recipient address, just as &amp;nbsp;with &amp;nbsp;the &amp;nbsp;&lt;b&gt;RELAYCLIENT&lt;/b&gt; environment variable. &amp;nbsp;Nearly always, the optional string should be&amp;nbsp;null. The filename can be overriden by &amp;nbsp;the &amp;nbsp;environment &amp;nbsp;variable &amp;nbsp;&lt;b&gt;RELAYCLIENTS&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Addresses in relayclients may be wildcarded (2nd line in the example below):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;192.168.0.1:&lt;br /&gt;
&amp;nbsp;192.168.1.:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Using MySQL relay table&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Run the command &lt;b&gt;&lt;i&gt;/var/indimail/bin/clearopensmtp&lt;/i&gt;&lt;/b&gt; in the cron every 30 Minutes&lt;br /&gt;
&lt;br /&gt;
By default&amp;nbsp;every time&amp;nbsp;who uses &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&#39;s&lt;/a&gt; &amp;nbsp;POP3 or IMAP service and authenticates, the following happens:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;On successful authentication, IMAP/POP3 daemon inserts entry into relay table, inserting&amp;nbsp;email, IP address and timestamp.&lt;/li&gt;
&lt;li&gt;If &lt;b&gt;CHECKRELAY&lt;/b&gt; environment variable is enabled, SMTP checks the relay table for a entry&amp;nbsp;within minutes specified by the &lt;b&gt;RELAY_CLEAR_MINUTES&lt;/b&gt; environment variable. If the entry is&amp;nbsp;there, &lt;b&gt;RELAYCLIENT&lt;/b&gt; environment variable is set, which allows relaying.&amp;nbsp;At this point, the SMTP server will allow that IP to relay for 60 Mins (default)&lt;/li&gt;
&lt;/ol&gt;&lt;b&gt;clearopensmtp&lt;/b&gt; will clear all IP which have not authenticated in the past&amp;nbsp;&lt;b&gt;RELAY_CLEAR_MINUTES&lt;/b&gt;.&amp;nbsp;&lt;b&gt;clearopensmtp&lt;/b&gt; should be enabled in cron to run every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Set up Authenticated SMTP&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; also provides you authenticated SMTP providing &lt;b&gt;AUTH PLAIN&lt;/b&gt;, &lt;b&gt;AUTH LOGIN&lt;/b&gt; and &lt;b&gt;AUTH CRAM-MD5&lt;/b&gt; methods.&amp;nbsp;Whenever a user successfully authenticates through SMTP, the RELAYCLIENT environment&amp;nbsp;variable gets set. &lt;b&gt;&lt;i&gt;qmail-smtpd&lt;/i&gt;&lt;/b&gt; uses the &lt;b&gt;RELAYCLIENT&lt;/b&gt; environment&amp;nbsp;variable&amp;nbsp;to allow relaying.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Most of the email clients like thunderbird, evolution, outlook, outlook express have options to use authenticated SMTP.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;For a tutorial on authenticated SMTP, you can refer to&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://indimail.blogspot.com/2010/03/authenticated-smtp-tutorial.html&quot;&gt;http://indimail.blogspot.com/2010/03/authenticated-smtp-tutorial.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;Using control file relaydomains&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Host &amp;nbsp;and &amp;nbsp;domain &amp;nbsp;names &amp;nbsp;allowed &amp;nbsp;to &amp;nbsp;relay mail through this host. &amp;nbsp;Each &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;address should be followed by a colon and an (optional) string that should&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;be &amp;nbsp;appended &amp;nbsp;to &amp;nbsp;each incoming recipient address, just as with the RELAY\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;CLIENT environment variable. &amp;nbsp;Nearly always, the optional string should be&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;null.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Addresses in relaydomains may be wildcarded:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;heaven.af.mil:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;.heaven.af.mil:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Using control file relaymailfrom&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;envelope &amp;nbsp;senders (MAIL FROM) listed in this file will be allowed to relay independently of the RELAYCLIENT environment variable. Entries in relaymailfrom can be E-Mail addresses, or just the domain (with the @ sign).&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
Unlike relaydomains native addresses should be entered. &amp;nbsp;A line in &amp;nbsp;relay&amp;nbsp;mailfrom &amp;nbsp;may be of the form @host, meaning every address at host. &amp;nbsp;relaymailfrom can also be in cdb format. If relaymailfrom.cdb &amp;nbsp;is &amp;nbsp;present, &amp;nbsp;it&amp;nbsp;will be searched first.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;nbsp; joeblow@domain1.com&lt;br /&gt;
&amp;nbsp; @domain2.com&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;If you use the control file /var/indimail/control/relaymailfrom, you should really know what you are doing. Any mail from having a domain component of the address matching any domain in this file, relaying will be allowed without any authentication. You can most probably use this only if you have a closed SMTP server to which access from outside is not possible.&lt;/div&gt;</description><link>http://indimail.blogspot.com/2010/07/relaying-how-does-indimail-handle.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-8805631240797690928</guid><pubDate>Wed, 30 Jun 2010 15:11:00 +0000</pubDate><atom:updated>2010-07-01T18:08:49.775+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">SOX HIPAA &quot;email archiving&quot; indimail altermime filterargs &quot;Basel II&quot; MiFID PIPEDA FRCP</category><title>Setting Disclaimers on your outgoing mails</title><description>&lt;div&gt;In my &lt;a href=&quot;http://indimail.blogspot.com/2010/06/email-archiving.html&quot;&gt;earlier article&lt;/a&gt;, I showed how to set up automatic rule based archival. I had discussed email archival as one of the many compliance requirements you might have. Sometimes you may also require to configure disclaimers in your messaging system. e.g for &lt;a href=&quot;http://en.wikipedia.org/wiki/Companies_Act_2006&quot;&gt;UK Companies Act 2006&lt;/a&gt;, &lt;a href=&quot;http://docs.google.com/viewer?a=v&amp;amp;q=cache:WP7RfI-O-LUJ:www.irs.gov/pub/irs-utl/circular_230.pdf+IRS+Circular+230&amp;amp;hl=en&amp;amp;gl=in&amp;amp;pid=bl&amp;amp;srcid=ADGEESjp9HV7lRi8ri9_axQvWhLbclCDjOlbMVcV9P8dewabWMQrRQl_0fO8nf-0heSQC-OLej4S9iJF9t37CenIZizmlV2ClSvUrBHSVc33e6xrNpkxU73s4RI1lWw3pc8BH4ZqZxYx&amp;amp;sig=AHIEtbRu1KKeuckajLXwpf6hurkT1zG91g&quot;&gt;IRS Circular 230&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; provides a utility called &lt;a href=&quot;http://www.pldaniels.com/altermime/&quot;&gt;altermime(1)&lt;/a&gt; to add your own disclaimers on each and every mail that goes out through your &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; messaging server. You can use any of the two options below to configure disclaimers&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Option 1 - using /var/indimail/control/filterargs&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;i&gt;filterargs&lt;/i&gt; control file allows you to insert any filter before remote or local delivery. You can use altermime to insert a disclaimer as below&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;*:/var/indimail/bin/altermime --input=- \&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;     --disclaimer=/var/indimail/control/disclaimer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;If you want disclaimer to be used only for your outgoing mails then, you could do the following&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;*:remote:/var/indimail/bin/altermime --input=- \&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;    --disclaimer=/var/indimail/control/disclaimer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;In both the above examples the file /var/indimail/control/disclaimer contains the text of your disclaimer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Option 2 - Set the FILTERARGS environment variabl&lt;/b&gt;e&lt;/div&gt;&lt;div&gt;Just like &lt;i&gt;filterargs&lt;/i&gt; control file, the environment variable &lt;b&gt;FILTERARGS&lt;/b&gt; allows you to set any custom filter before your mail gets deposited into the queue by &lt;b&gt;qmail-queue(8)&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;% su &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;# echo /var/indimail/bin/altermime --input=- --disclaimer=/var/indimail/control/disclaimer \&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;   &gt; /service/qmail-smtpd.587/variables/FILTERARGS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;# svc -d /service/qmail-smtpd.587&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;# svc -u /service/qmail-smtpd.587&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;Read &lt;b&gt;altermime(1)&lt;/b&gt; man page for more details&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;You can download IndiMail at&lt;br /&gt;&lt;a href=&quot;http://sourceforge.net/projects/indimail/&quot;&gt;http://sourceforge.net/projects/indimail/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The  RPM can be downloaded from&lt;br /&gt;&lt;a href=&quot;http://download.opensuse.org/repositories/home:/indimail/&quot;&gt;http://download.opensuse.org/repositories/home:/indimail/&lt;/a&gt;&lt;br /&gt;&lt;table style=&quot;background-color: rgb(255, 255, 255); padding: 5px;&quot; border=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt; &lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;img src=&quot;http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif&quot; /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style=&quot;padding-left: 5px;&quot;&gt;&lt;b&gt;Subscribe to indimail&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;form action=&quot;http://groups.google.com/group/indimail/boxsubscribe&quot;&gt;&lt;/form&gt; &lt;tr&gt;&lt;td style=&quot;padding-left: 5px;&quot;&gt;&lt;br /&gt;Email: &lt;input name=&quot;email&quot; type=&quot;text&quot;&gt;&lt;br /&gt;&lt;input name=&quot;sub&quot; value=&quot;Subscribe&quot; type=&quot;submit&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;a href=&quot;http://groups.google.com/group/indimail&quot;&gt;Visit this group&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description><link>http://indimail.blogspot.com/2010/06/setting-disclaimers-on-your-outgoing.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-9125063277377166168</guid><pubDate>Sat, 26 Jun 2010 03:49:00 +0000</pubDate><atom:updated>2011-08-02T14:07:01.380+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">SOX HIPAA &quot;email archiving&quot; indimail qmail-queue &quot;Basel II&quot; MiFID PIPEDA FRCP</category><title>Email Archiving</title><description>&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; provides multiple options for those who want their emails archived automatically. &lt;br /&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;For easy retrieval, you can use tools like google desktop, beagle, etc&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;If you use IndiMail, you have two methods to achieve automatic archiving of emails&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;1. using environment variable EXTRAQUEUE&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;If EXTRAQUEUE environment variable is set to any environment variable, qmail-queue will deposit an extra copy of the email which it receives for putting it in the queue. Normally you would set EXTRAQUEUE variable in any of the clients which use qmail-queue. e.g. qmail-smtpd, qmail-inject, sendmail, etc. If you have setup IndiMail as per the official instructions, you can set EXTRAQUEUE for incoming and outgoing mails as given below&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;% su&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;# echo &quot;archive@example.com&quot; &amp;gt; /service/qmail-smtpd.25/variables/EXTRAQUEUE&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;# echo &quot;archive@example.com&quot; &amp;gt; /service/qmail-smtpd.587/variables/EXTRAQUEUE&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;# svc -d /service/qmail-smtpd.25 /service/qmail-smtpd.587&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;# svc -u /service/qmail-smtpd.25 /service/qmail-smtpd.587&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;# exit&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Now all your emails coming in and going out of the system, a copy will be sent to archive@example.com. If archive@example.com lies on IndiMail Messaging Platform, you can set filters (&lt;b&gt;using vfilter(1)&lt;/b&gt;) to automatically deposit the mails in different folders. The folders can be decided on various criteria like date, sender, recipient, domain, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;2. using control file mailarchive&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;This control file allows you to set up rule based archiving. For any specific sender or recipient, you can set a rule to select a destination email for archiving. This is much more flexible than using EXTRAQUEUE which allowed you to archive emails to a single email address. A line in the control file mailarchive can be of the form&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;type:regexp:dest_address&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Here type is &#39;T&#39; to set a rule on recipients. You can set the type as &#39;F&#39; to set a rule on the sender.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;regexp is any email address which matches the sender or recipient (depending on whether type is &#39;T&#39; or &#39;F&#39;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;dest_address should expand to a valid email address. You can have a valid email address. You can also have the &#39;%&#39; sign followed by the letters u, d or e in the address to have the following substitutions made&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;%u - gets replaced by the user component of email address (without the &#39;@&#39; sign)&lt;/div&gt;&lt;div&gt;%d - gets replaced by the domain component of email address&lt;/div&gt;&lt;div&gt;%e - gets replaced by the email address&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The email address in the above substitution will be the recipient (if type is &#39;T&#39;) and the sender (if type is &#39;F&#39;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;another example and a cool tip :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;T:*:%u@arch%d&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Will make a hot standby of your incoming mails for yourdomain on another server hosting &lt;b&gt;arch&lt;/b&gt;yourdomain.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;NOTE: Currently only type = &#39;F&#39; is implemented. type=&#39;T&#39; will be implemented in release 1.7.8&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;For some organizations, email archiving is a must due to compliance with regulatory standards like &lt;a href=&quot;http://en.wikipedia.org/wiki/Sarbanes%E2%80%93Oxley_Act&quot;&gt;SOX&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act&quot;&gt;HIPAA&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Basel_II&quot;&gt;Basel II Accord&lt;/a&gt; (effective 2006), &lt;a href=&quot;http://en.wikipedia.org/wiki/Privacy_Act_(Canada)&quot;&gt;Canadian Privacy Ac&lt;/a&gt;t, &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_Protection_Act_1998&quot;&gt;Data Protection Act 1988&lt;/a&gt;,  &lt;a href=&quot;http://docs.google.com/viewer?a=v&amp;amp;q=cache:cS5HBLk1PU8J:download.pgp.com/pdfs/regulations/EUD_compliance_brief-080618.pdf+EU+Data+Protection+Directive+95/46/FC&amp;amp;hl=en&amp;amp;gl=in&amp;amp;pid=bl&amp;amp;srcid=ADGEESiZ-t43XtRj7zbqAg1o49q0czKBgayHgriM49Tt_Y9eIdEsaCq_52xTPAmO4Jv5M2qudymuWl8kZIyQjgsKhhrCNrZiWy7g2LMJNdydwyqFA_c9g73WqvvCUZD35tzr3e4MZoqG&amp;amp;sig=AHIEtbQUryWtZRLahL7iZY7hF-aYmBXfzQ&quot;&gt;EU Data Protection Directive 95/46/FC&lt;/a&gt;, &lt;a href=&quot;http://csrc.nist.gov/groups/SMA/fisma/index.html&quot;&gt;Federal Information Security Management Act (FISMA)&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Federal_Rules_of_Civil_Procedure&quot;&gt;Federal Rules of Civil Procedure (FRCP&lt;/a&gt;), &lt;a href=&quot;http://en.wikipedia.org/wiki/Financial_Services_Act_1986&quot;&gt;Financial Services Act 198, regulated by FSA&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Freedom_of_Information_Act_(United_States)&quot;&gt;Freedom of Information Act (FOIA)&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Freedom_of_Information_Act_2000&quot;&gt;Freedom of Information Act (in force January 2005)&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Gramm%E2%80%93Leach%E2%80%93Bliley_Act&quot;&gt;The Gramm-Leach-Bliley Act (GLBA)&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Markets_in_Financial_Instruments_Directive&quot;&gt;MiFID (Markets in Financial Instruments Directives)&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Personal_Information_Protection_and_Electronic_Documents_Act&quot;&gt;PIPEDA (Personal Information Protection and Electronic Documents Act)&lt;/a&gt;, &lt;a href=&quot;http://whitepapers.techrepublic.com.com/abstract.aspx?docid=356636&quot;&gt;SEC Rule 17a-4/ NASD 3010 (Securities Exchange Act 1934)&lt;/a&gt;.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;Apart from archiving, you would also want to set disclaimers. IndiMail allows you to set a disclaimer by setting the FILTERARGS environment variable and using &lt;b&gt;altermime(1)&lt;/b&gt;. The following acts/circular specifically require you to set disclaimers.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Companies_Act_2006&quot;&gt;UK Companies Act 2006&lt;/a&gt;,  &lt;a href=&quot;http://docs.google.com/viewer?a=v&amp;amp;q=cache:WP7RfI-O-LUJ:www.irs.gov/pub/irs-utl/circular_230.pdf+IRS+Circular+230&amp;amp;hl=en&amp;amp;gl=in&amp;amp;pid=bl&amp;amp;srcid=ADGEESjp9HV7lRi8ri9_axQvWhLbclCDjOlbMVcV9P8dewabWMQrRQl_0fO8nf-0heSQC-OLej4S9iJF9t37CenIZizmlV2ClSvUrBHSVc33e6xrNpkxU73s4RI1lWw3pc8BH4ZqZxYx&amp;amp;sig=AHIEtbRu1KKeuckajLXwpf6hurkT1zG91g&quot;&gt;IRS Circular 230&lt;/a&gt;, &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;a href=&quot;http://www.itsecurity.com/features/feature-email-security-non-technical-101606/&quot;&gt;Email Compliance - A simple 5 step guide&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/E-mail_archiving&quot;&gt;E-Mail archiving - Wikipedia&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.sonian.com/bid/30431/Compliance-Requirements-for-Email-Archiving&quot;&gt;Compliance Requirements for email archiving&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://webcache.googleusercontent.com/search?q=cache:13mauWySqM4J:www.exclaimer.com/Libraries/Mail_Utilities_-_Documents/Summary_of_UK_European_and_US_Legislation.sflb.ashx+mail+archival+eu+compliance+laws&amp;amp;hl=en&amp;amp;gl=in&quot;&gt;Email Legislation - Summary of UK, US, EU legislations&lt;/a&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
You can download IndiMail at&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/indimail/&quot;&gt;http://sourceforge.net/projects/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The  RPM can be downloaded from&lt;br /&gt;
&lt;a href=&quot;http://download.opensuse.org/repositories/home:/indimail/&quot;&gt;http://download.opensuse.org/repositories/home:/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-color: white; padding: 5px;&quot;&gt;&lt;tbody&gt; &lt;/tbody&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;img src=&quot;http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding-left: 5px;&quot;&gt;&lt;br /&gt;
&lt;b&gt;Subscribe to indimail&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;form action=&quot;http://groups.google.com/group/indimail/boxsubscribe&quot;&gt;&lt;/form&gt;&lt;tr&gt;&lt;td style=&quot;padding-left: 5px;&quot;&gt;&lt;br /&gt;
Email: &lt;input name=&quot;email&quot; type=&quot;text&quot; /&gt;&lt;br /&gt;
&lt;input name=&quot;sub&quot; type=&quot;submit&quot; value=&quot;Subscribe&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;br /&gt;
&lt;a href=&quot;http://groups.google.com/group/indimail&quot;&gt;Visit this group&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description><link>http://indimail.blogspot.com/2010/06/email-archiving.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-5826914392501669149</guid><pubDate>Thu, 10 Jun 2010 04:49:00 +0000</pubDate><atom:updated>2010-08-14T19:13:26.238+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">domain limits vlimit</category><title>Setting Limits for your Virtual Domain</title><description>IndiMail comes with a program &lt;span style=&quot;font-weight: bold;&quot;&gt;vlimit(1)&lt;/span&gt;, which allows you to set global limits for your domain. Before using vlimit, you need to enable domain limits for a domain using &lt;b&gt;vmoddomain(1)&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;% vmoddomain -l 1 example.com&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Once you have done the above, you can start using vlimit for the domain example.com&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;% vlimit -s example.com&lt;br /&gt;
Domain Expiry Date   : Never Expires&lt;br /&gt;
Password Expiry Date : Never Expires&lt;br /&gt;
Max Domain Quota     : -1&lt;br /&gt;
Max Domain Messages  : -1&lt;br /&gt;
Default User Quota   : -1&lt;br /&gt;
Default User Messages: -1&lt;br /&gt;
Max Pop Accounts     : -1&lt;br /&gt;
Max Aliases          : -1&lt;br /&gt;
Max Forwards         : -1&lt;br /&gt;
Max Autoresponders   : -1&lt;br /&gt;
Max Mailinglists     : -1&lt;br /&gt;
GID Flags:&lt;br /&gt;
Flags for non postmaster accounts:&lt;br /&gt;
pop account           : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
alias                 : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
forward               : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
autoresponder         : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist           : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist users     : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist moderators: ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
domain quota          : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
default quota         : ALLOW_CREATE ALLOW_MODIFY&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
Using vlimit you can set various limits or defaults for a domain. One of my favourite use of vlimit is setting default quota for users created in a domain. The default quota compiled in IndiMail is 5Mb which is not good enough for today&#39;s users. So if you want to have a default quota of 50 Mb for your users when you add them using the &lt;span style=&quot;font-weight: bold;&quot;&gt;vadduser(1)&lt;/span&gt; command -&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;% vlimit -q 52428800 example.com&lt;br /&gt;
% vlimit -s example.com&lt;br /&gt;
Domain Expiry Date   : Never Expires&lt;br /&gt;
Password Expiry Date : Never Expires&lt;br /&gt;
Max Domain Quota     : -1&lt;br /&gt;
Max Domain Messages  : -1&lt;br /&gt;
Default User Quota   : 52428800&lt;br /&gt;
Default User Messages: -1&lt;br /&gt;
Max Pop Accounts     : -1&lt;br /&gt;
Max Aliases          : -1&lt;br /&gt;
Max Forwards         : -1&lt;br /&gt;
Max Autoresponders   : -1&lt;br /&gt;
Max Mailinglists     : -1&lt;br /&gt;
GID Flags:&lt;br /&gt;
Flags for non postmaster accounts:&lt;br /&gt;
pop account           : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
alias                 : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
forward               : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
autoresponder         : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist           : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist users     : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist moderators: ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
domain quota          : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
default quota         : ALLOW_CREATE ALLOW_MODIFY &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can also implement domain level restrictions. To disable POP3 for all users in example.com&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;% vlimit -g p example.com&lt;br /&gt;
% vlimit -s example.com&lt;br /&gt;
Domain Expiry Date   : Never Expires&lt;br /&gt;
Password Expiry Date : Never Expires&lt;br /&gt;
Max Domain Quota     : -1&lt;br /&gt;
Max Domain Messages  : -1&lt;br /&gt;
Default User Quota   : 52428800&lt;br /&gt;
Default User Messages: -1&lt;br /&gt;
Max Pop Accounts     : -1&lt;br /&gt;
Max Aliases          : -1&lt;br /&gt;
Max Forwards         : -1&lt;br /&gt;
Max Autoresponders   : -1&lt;br /&gt;
Max Mailinglists     : -1&lt;br /&gt;
GID Flags:&lt;br /&gt;
NO_POP&lt;br /&gt;
Flags for non postmaster accounts:&lt;br /&gt;
pop account       : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
alias                    : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
forward               : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
autoresponder    : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist           : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist users     : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
mailinglist moderators: ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
domain quota          : ALLOW_CREATE ALLOW_MODIFY ALLOW_DELETE&lt;br /&gt;
default quota         : ALLOW_CREATE ALLOW_MODIFY&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
You can download IndiMail at&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/indimail/&quot;&gt;http://sourceforge.net/projects/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The  RPM can be downloaded from&lt;br /&gt;
&lt;a href=&quot;http://download.opensuse.org/repositories/home:/indimail/&quot;&gt;http://download.opensuse.org/repositories/home:/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-color: white; padding: 5px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;img src=&quot;http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding-left: 5px;&quot;&gt;&lt;br /&gt;
&lt;b&gt;Subscribe to indimail&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;form action=&quot;http://groups.google.com/group/indimail/boxsubscribe&quot;&gt;&lt;/form&gt;&lt;tr&gt;&lt;td style=&quot;padding-left: 5px;&quot;&gt;&lt;br /&gt;
Email: &lt;input name=&quot;email&quot; type=&quot;text&quot; /&gt;&lt;br /&gt;
&lt;input name=&quot;sub&quot; type=&quot;submit&quot; value=&quot;Subscribe&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;&lt;br /&gt;
&lt;a href=&quot;http://groups.google.com/group/indimail&quot;&gt;Visit this group&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</description><link>http://indimail.blogspot.com/2010/06/setting-limits-for-your-virtual-domain.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-8840338230461972459</guid><pubDate>Tue, 01 Jun 2010 04:04:00 +0000</pubDate><atom:updated>2010-06-01T16:00:05.678+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">ldap indimail addressbook openldap</category><title>using openLDAP for addressbook</title><description>By now I have got exhausted answering folks &#39;Why IndiMail does not have a shared addressbook&#39;&lt;br /&gt;&lt;br /&gt;IndiMail is a pure messaging platform. It does not attempt to do things which can be done better by other software like openLDAP etc.&lt;br /&gt;&lt;br /&gt;However, things can get bit tricky setting up an address book using openLDAP. This tutorial should make it easy for you to install your own shared address book. The commands below have worked for me on my linux laptop which is proudly powered by Fedora 12. The commands / configuration may slightly vary for your Linux distro / openLDAP version.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;Install openldap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;% sudo yum install openldap openldap-servers openldap-clients&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Configure openldap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You need to start slapd to implement openldap. slapd uses configurion&lt;br /&gt;file /etc/openldap/slapd.conf&lt;br /&gt;&lt;br /&gt;The following slapd.conf file contains the basic configurations required to establish a shared address book on a secure network, however there are no access controls yet defined; security is covered later on. The encrypted root password (rootpw) should be substituted where necessary. You can use slappasswd to generate the password&lt;br /&gt;&lt;br /&gt;% slappasswd -s secret&lt;br /&gt;{SSHA}gDPX3cS87+B31mAF5zHCGtEJBYSuqrN/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;#&lt;br /&gt;# See slapd.conf(5) for details on configuration options.&lt;br /&gt;# This file should NOT be world readable.&lt;br /&gt;#&lt;br /&gt;include     /etc/openldap/schema/corba.schema&lt;br /&gt;include     /etc/openldap/schema/core.schema&lt;br /&gt;include     /etc/openldap/schema/cosine.schema&lt;br /&gt;include     /etc/openldap/schema/duaconf.schema&lt;br /&gt;include     /etc/openldap/schema/dyngroup.schema&lt;br /&gt;include     /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;include     /etc/openldap/schema/java.schema&lt;br /&gt;include     /etc/openldap/schema/misc.schema&lt;br /&gt;include     /etc/openldap/schema/nis.schema&lt;br /&gt;include     /etc/openldap/schema/openldap.schema&lt;br /&gt;include     /etc/openldap/schema/ppolicy.schema&lt;br /&gt;include     /etc/openldap/schema/collective.schema&lt;br /&gt;&lt;br /&gt;#######################################################################&lt;br /&gt;# ldbm and/or bdb database definitions&lt;br /&gt;#######################################################################&lt;br /&gt;&lt;br /&gt;database    bdb&lt;br /&gt;suffix      &quot;dc=indimail,dc=org&quot;&lt;br /&gt;checkpoint  1024 15&lt;br /&gt;rootdn      &quot;cn=Manager,dc=indimail,dc=org&quot;&lt;br /&gt;rootpw      {SSHA}gDPX3cS87+B31mAF5zHCGtEJBYSuqrN/&lt;br /&gt;# The database directory MUST exist prior to running slapd AND&lt;br /&gt;# should only be accessible by the slapd and slap tools.&lt;br /&gt;# Mode 700 recommended.&lt;br /&gt;directory   /var/lib/ldap&lt;br /&gt;&lt;br /&gt;# Sample access control policy:&lt;br /&gt;#   Root DSE: allow anyone to read it&lt;br /&gt;#   Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;#   Other DSEs:&lt;br /&gt;#       Allow self write access&lt;br /&gt;#       Allow authenticated users read access&lt;br /&gt;#       Allow anonymous users to authenticate&lt;br /&gt;#   Directives needed to implement policy:&lt;br /&gt;# access to dn.base=&quot;&quot; by * read&lt;br /&gt;# access to dn.base=&quot;cn=Subschema&quot; by * read&lt;br /&gt;# access to *&lt;br /&gt;#   by self write&lt;br /&gt;#   by users read&lt;br /&gt;#   by anonymous auth&lt;br /&gt;#&lt;br /&gt;# if no access controls are present, the default policy&lt;br /&gt;# allows anyone and everyone to read anything but restricts&lt;br /&gt;# updates to rootdn.  (e.g., &quot;access to * by * read&quot;)&lt;br /&gt;#&lt;br /&gt;# rootdn can always read and write EVERYTHING!&lt;br /&gt;&lt;br /&gt;access to dn.subtree=&quot;ou=addressbook,dc=indimail,dc=org&quot;&lt;br /&gt;    by anonymous auth&lt;br /&gt;    by self write&lt;br /&gt;    by users read&lt;br /&gt;access to *&lt;br /&gt;    by anonymous auth&lt;br /&gt;    by self read&lt;br /&gt;    by users read&lt;br /&gt;&lt;br /&gt;# Indices to maintain for this database&lt;br /&gt;index objectClass                       eq,pres&lt;br /&gt;#index ou,cn,mail,surname,givenname      eq,pres,sub&lt;br /&gt;#index uidNumber,gidNumber,loginShell    eq,pres&lt;br /&gt;#index uid,memberUid                     eq,pres,sub&lt;br /&gt;#index nisMapName,nisMapEntry            eq,pres,sub&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Make user that /etc/openldap/slapd.conf is owned by ldap and has write permissions for ldap user.&lt;br /&gt;&lt;br /&gt;As of now I prefer openldap using slapd.conf and not slapd.d for configuration.&lt;br /&gt;&lt;br /&gt;% sudo /bin/rm -r /etc/openldap/slapd.d&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;slapd Startup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My favourite method happens to be using djb&#39;s supervise and hence is one of the core compoment of the IndiMail package&lt;br /&gt;&lt;br /&gt;% cat &gt; /tmp/run1&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /usr/sbin/slapd -u ldap -f /etc/openldap/slapd.conf -d 0 2&gt;&amp;amp;1&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;cntrl-d&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;% cat &gt; /tmp/run2&lt;br /&gt;#!/bin/sh&lt;br /&gt;exec /var/indimail/bin/setuidgid qmaill \&lt;br /&gt;/var/indimail/bin/multilog t /var/log/indimail/slapd.389&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;cntrl-d&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# create /service/.slapd.389 so that svscan does not discover this new service yet&lt;br /&gt;% sudo mkdir -p /service/.slapd.389/log&lt;br /&gt;% sudo mv /tmp/run2 /service/.slapd.389/log/run&lt;br /&gt;% sudo mv /tmp/run1 /service/.slapd.389/run&lt;br /&gt;% sudo chmod +x /service/.slapd.389/run /service/.slapd.389/log/run&lt;br /&gt;&lt;br /&gt;# rename .slapd.389 to slapd.389 for svscan to discover and start slapd&lt;br /&gt;% sudo mv /service/.slapd.389 /service/slapd.389&lt;br /&gt;&lt;br /&gt;% svstat /service/slapd.389&lt;br /&gt;/service/slapd.389/: up (pid 4069) 4 seconds&lt;br /&gt;&lt;eof bin=&quot;&quot; sh=&quot;&quot; exec=&quot;&quot; usr=&quot;&quot; sbin=&quot;&quot; slapd=&quot;&quot; u=&quot;&quot; ldap=&quot;&quot; f=&quot;&quot; etc=&quot;&quot; openldap=&quot;&quot; conf=&quot;&quot; d=&quot;&quot; 0=&quot;&quot; 2=&quot;&quot;&gt;&lt;br /&gt;&lt;eof sh=&quot;&quot; exec=&quot;&quot; setuidgid=&quot;&quot; qmaill=&quot;&quot; bin=&quot;&quot; multilog=&quot;&quot; t=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; eof=&quot;&quot; create=&quot;&quot; so=&quot;&quot; that=&quot;&quot; does=&quot;&quot; not=&quot;&quot; this=&quot;&quot; new=&quot;&quot; yet=&quot;&quot; mkdir=&quot;&quot; p=&quot;&quot; run2=&quot;&quot; tmp=&quot;&quot; run1=&quot;&quot; chmod=&quot;&quot; x=&quot;&quot; log=&quot;&quot; run=&quot;&quot; rename=&quot;&quot; for=&quot;&quot; svscan=&quot;&quot; to=&quot;&quot; discover=&quot;&quot; and=&quot;&quot; start=&quot;&quot; mv=&quot;&quot; sudo=&quot;&quot; svstat=&quot;&quot; 389=&quot;&quot; service=&quot;&quot; slapd=&quot;&quot; up=&quot;&quot; pid=&quot;&quot; 4=&quot;&quot; seconds=&quot;&quot;&gt;&lt;eof bin=&quot;&quot; sh=&quot;&quot; exec=&quot;&quot; usr=&quot;&quot; sbin=&quot;&quot; slapd=&quot;&quot; u=&quot;&quot; ldap=&quot;&quot; f=&quot;&quot; etc=&quot;&quot; openldap=&quot;&quot; conf=&quot;&quot; d=&quot;&quot; 0=&quot;&quot; 2=&quot;&quot;&gt;&lt;eof sh=&quot;&quot; exec=&quot;&quot; setuidgid=&quot;&quot; qmaill=&quot;&quot; bin=&quot;&quot; multilog=&quot;&quot; t=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; eof=&quot;&quot; create=&quot;&quot; so=&quot;&quot; does=&quot;&quot; not=&quot;&quot; new=&quot;&quot; yet=&quot;&quot; mkdir=&quot;&quot; p=&quot;&quot; run2=&quot;&quot; tmp=&quot;&quot; run1=&quot;&quot; chmod=&quot;&quot; log=&quot;&quot; run=&quot;&quot; rename=&quot;&quot; for=&quot;&quot; svscan=&quot;&quot; discover=&quot;&quot; mv=&quot;&quot; sudo=&quot;&quot; svstat=&quot;&quot; 389=&quot;&quot; slapd=&quot;&quot; up=&quot;&quot; pid=&quot;&quot; 4=&quot;&quot; seconds=&quot;&quot; addressbook=&quot;&quot; imported=&quot;&quot; exported=&quot;&quot; service=&quot;&quot; using=&quot;&quot; data=&quot;&quot; interchange=&quot;&quot; format=&quot;&quot; as=&quot;&quot; defined=&quot;&quot; an=&quot;&quot; specifies=&quot;&quot; contents=&quot;&quot; entry=&quot;&quot; in=&quot;&quot; human=&quot;&quot; readable=&quot;&quot; text=&quot;&quot; this=&quot;&quot; allows=&quot;&quot; quick=&quot;&quot; manipulation=&quot;&quot; file=&quot;&quot; entries=&quot;&quot; into=&quot;&quot; now=&quot;&quot; that=&quot;&quot; ldap=&quot;&quot; server=&quot;&quot; has=&quot;&quot; been=&quot;&quot; configured=&quot;&quot; and=&quot;&quot; is=&quot;&quot; can=&quot;&quot; conduct=&quot;&quot; a=&quot;&quot; simple=&quot;&quot; search=&quot;&quot; of=&quot;&quot; naming=&quot;&quot; context=&quot;&quot; see=&quot;&quot; directory=&quot;&quot; information=&quot;&quot; before=&quot;&quot; we=&quot;&quot; start=&quot;&quot; import=&quot;&quot; our=&quot;&quot; should=&quot;&quot; be=&quot;&quot; similar=&quot;&quot; to=&quot;&quot; the=&quot;&quot; example=&quot;&quot; ldapsearch=&quot;&quot; x=&quot;&quot; b=&quot;&quot; s=&quot;&quot; objectclass=&quot;*)&#39;&quot; namingcontexts=&quot;&quot; extended=&quot;&quot; ldif=&quot;&quot; ldapv3=&quot;&quot; base=&quot;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;AddressBook Entries&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Information can be imported and exported into an LDAP directory service using the LDAP Data Interchange Format (LDIF) as defined in RFC2849. An LDIF file specifies the contents of a directory entry in a human readable text format, this allows quick manipulation of a file to re-import similar entries into the directory.&lt;br /&gt;&lt;br /&gt;Now that the LDAP server has been configured and is running, we can conduct a simple search of the naming context to see our directory information before we start to import our entries.&lt;br /&gt;&lt;br /&gt;The &quot;namingContexts&quot; should be similar to the example below.&lt;br /&gt;&lt;br /&gt;% ldapsearch -x -b &#39;&#39; -s base &#39;(objectclass=*)&#39; namingContexts&lt;br /&gt;# extended LDIF&lt;br /&gt;#&lt;br /&gt;# LDAPv3&lt;br /&gt;# base &lt;&gt; with scope base&lt;br /&gt;# filter: (objectclass=*)&lt;br /&gt;# requesting: namingContexts&lt;br /&gt;&lt;br /&gt;dn:&lt;br /&gt;namingContexts: dc=indimail,dc=org&lt;br /&gt;&lt;br /&gt;# search result&lt;br /&gt;search: 2&lt;br /&gt;result: 0 Success&lt;br /&gt;&lt;br /&gt;# numResponses: 2&lt;br /&gt;# numEntries: 1&lt;br /&gt;&lt;br /&gt;The following LDIF file will create the hierarchical directory service structure that we will be using for indimail&#39;s address book. The first entry is that of the base directory and the second entry is for the Manager&#39;s (administrator) account. The last two entries are the two organisational units that we will use to store the authorised users (for adding security later) and the address book entries.&lt;br /&gt;&lt;br /&gt;The bolded entries should be changed to suit your configuration requirements.&lt;br /&gt;&lt;br /&gt;% cat &gt; addressbook.ldif&lt;br /&gt;# Domain entry&lt;br /&gt;dn: dc=indimail,dc=org&lt;br /&gt;o: IndiMail LDAP Server&lt;br /&gt;dc: indimail&lt;br /&gt;objectclass: dcObject&lt;br /&gt;objectclass: organization&lt;br /&gt;&lt;br /&gt;# Manager entry&lt;br /&gt;dn: cn=Manager,dc=indimail,dc=org&lt;br /&gt;cn: Manager&lt;br /&gt;objectclass: organizationalRole&lt;br /&gt;&lt;br /&gt;# Users&lt;br /&gt;dn: ou=users,dc=indimail,dc=org&lt;br /&gt;ou: users&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: organizationalUnit&lt;br /&gt;&lt;br /&gt;# Addressbook entry&lt;br /&gt;dn: ou=AddressBook,dc=indimail,dc=org&lt;br /&gt;ou: AddressBook&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: organizationalUnit&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;cntrl-d&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;% ldapadd -x -D &#39;cn=Manager,dc=indimail,dc=org&#39; -W -f addressbook.ldif&lt;br /&gt;Enter LDAP Password:&lt;br /&gt;adding new entry &quot;dc=indimail,dc=org&quot;&lt;br /&gt;adding new entry &quot;cn=Manager,dc=indimail,dc=org&quot;&lt;br /&gt;adding new entry &quot;ou=users,dc=indimail,dc=org&quot;&lt;br /&gt;adding new entry &quot;ou=addressbook,dc=indimail,dc=org&quot;&lt;br /&gt;&lt;eof domain=&quot;&quot; server=&quot;&quot; eof=&quot;&quot; ldapadd=&quot;&quot; d=&quot;&quot; w=&quot;&quot; f=&quot;&quot; enter=&quot;&quot; adding=&quot;&quot; new=&quot;&quot; search=&quot;&quot; requesting=&quot;&quot; listing=&quot;&quot; starting=&quot;&quot; from=&quot;&quot; base=&quot;&quot; return=&quot;&quot; all=&quot;&quot; of=&quot;&quot; added=&quot;&quot; previous=&quot;&quot; ldapsearch=&quot;&quot; x=&quot;&quot; b=&quot;&quot; objectclass=&quot;*)&#39;&quot; dc=&quot;indimail,dc=org&quot; dcobject=&quot;&quot; organization=&quot;&quot; home=&quot;&quot; ldap=&quot;&quot; network=&quot;&quot; indimail=&quot;&quot; cn=&quot;Manager,dc=indimail,dc=org&quot; organizationalrole=&quot;&quot; manager=&quot;&quot; users=&quot;&quot; com=&quot;&quot; ou=&quot;users,dc=indimail,dc=org&quot; addressbook=&quot;&quot; top=&quot;&quot; organizationalunit=&quot;&quot; now=&quot;&quot; that=&quot;&quot; have=&quot;&quot; defined=&quot;&quot; and=&quot;&quot; imported=&quot;&quot; our=&quot;&quot; we=&quot;&quot; are=&quot;&quot; able=&quot;&quot; create=&quot;&quot; user=&quot;&quot; entries=&quot;&quot; populate=&quot;&quot; following=&quot;&quot; is=&quot;&quot; simple=&quot;&quot; example=&quot;&quot; ldif=&quot;&quot; for=&quot;&quot; a=&quot;&quot; first=&quot;&quot; line=&quot;&quot; designates=&quot;&quot; where=&quot;&quot; about=&quot;&quot; in=&quot;&quot; directory=&quot;&quot; the=&quot;&quot; entry=&quot;&quot; will=&quot;&quot; belong=&quot;&quot; when=&quot;&quot; its=&quot;&quot; this=&quot;&quot; should=&quot;&quot; be=&quot;&quot; changed=&quot;&quot; to=&quot;&quot; suit=&quot;&quot; your=&quot;&quot; cat=&quot;&quot;&gt;&lt;eof manvendra=&quot;&quot; bhangui=&quot;&quot; home=&quot;&quot; velachery=&quot;&quot; 12=&quot;&quot; banana=&quot;&quot; republic=&quot;&quot; tn=&quot;&quot; 600042=&quot;&quot; 1111=&quot;&quot; 1234=&quot;&quot; 1235=&quot;&quot; 5555=&quot;&quot; 1236=&quot;&quot; 0400=&quot;&quot; 123=&quot;&quot; com=&quot;&quot; top=&quot;&quot; inetorgperson=&quot;&quot; eof=&quot;&quot; added=&quot;&quot; standard=&quot;&quot; defines=&quot;&quot; only=&quot;&quot; add=&quot;&quot; manager=&quot;&quot; authenicating=&quot;&quot; ldapadd=&quot;&quot; x=&quot;&quot; w=&quot;&quot; f=&quot;&quot; enter=&quot;&quot; adding=&quot;&quot; entry=&quot;&quot; cn=&quot;Manvendra&quot; section=&quot;&quot; below=&quot;&quot; details=&quot;&quot; based=&quot;&quot; on=&quot;&quot; have=&quot;&quot; been=&quot;&quot; defined=&quot;&quot; deny=&quot;&quot; everyone=&quot;&quot; however=&quot;&quot; bind=&quot;&quot; authenticated=&quot;&quot; allowed=&quot;&quot; change=&quot;&quot; their=&quot;&quot; own=&quot;&quot; entries=&quot;&quot; ou=&quot;addressbook,dc=indimail,dc=org&quot; self=&quot;&quot; anonymous=&quot;&quot; auth=&quot;&quot; read=&quot;&quot; subtree=&quot;ou=addressbook,dc=indimail,dc=org&quot; write=&quot;&quot; control=&quot;&quot; list=&quot;&quot; may=&quot;&quot; prone=&quot;&quot; syntax=&quot;&quot; errors=&quot;&quot; accepted=&quot;&quot; by=&quot;&quot; tested=&quot;&quot; before=&quot;&quot; etc=&quot;&quot; d=&quot;&quot; slapd=&quot;&quot; configtest=&quot;&quot; configuration=&quot;&quot; passes=&quot;&quot; integrity=&quot;&quot; sudo=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; bin=&quot;&quot; svc=&quot;&quot; u=&quot;&quot; service=&quot;&quot; 389=&quot;&quot; new=&quot;&quot; controls=&quot;&quot; prevent=&quot;&quot; unauthorised=&quot;&quot; access=&quot;&quot; directory=&quot;&quot; simple=&quot;&quot; must=&quot;&quot; prepared=&quot;&quot; allow=&quot;&quot; people=&quot;&quot; authenticate=&quot;&quot; with=&quot;&quot; objects=&quot;&quot; will=&quot;&quot; server=&quot;&quot; using=&quot;&quot; remember=&quot;&quot; everything=&quot;&quot; ldif=&quot;&quot; human=&quot;&quot; readable=&quot;&quot; so=&quot;&quot; very=&quot;&quot; bad=&quot;&quot; especially=&quot;&quot; if=&quot;&quot; you=&quot;&quot; following=&quot;&quot; guide=&quot;&quot; no=&quot;&quot; plain=&quot;&quot; passwords=&quot;&quot; application=&quot;&quot; used=&quot;&quot; these=&quot;&quot; saved=&quot;&quot; store=&quot;&quot; text=&quot;&quot; does=&quot;&quot; mean=&quot;&quot; completely=&quot;&quot; just=&quot;&quot; means=&quot;&quot; they=&quot;&quot; not=&quot;&quot; easily=&quot;&quot; attacker=&quot;&quot; subject=&quot;&quot; value=&quot;&quot; brute=&quot;&quot; force=&quot;&quot; but=&quot;&quot; would=&quot;&quot; take=&quot;&quot; them=&quot;&quot; an=&quot;&quot; awfully=&quot;&quot; long=&quot;&quot; physical=&quot;&quot; security=&quot;&quot; still=&quot;&quot; rzmbkch3wwemnhdanh=&quot;&quot; l3oynzhsifpzf=&quot;&quot; algorithm=&quot;&quot; for=&quot;&quot; hashed=&quot;&quot; password=&quot;&quot; changed=&quot;&quot; at=&quot;&quot; command=&quot;&quot; line=&quot;&quot; other=&quot;&quot; default=&quot;&quot; type=&quot;&quot; slappasswd=&quot;&quot; h=&quot;&quot; ekwoqr8vr0sn46lo4wxg=&quot;=&quot; can=&quot;&quot; now=&quot;&quot; created=&quot;&quot; imported=&quot;&quot; into=&quot;&quot; ldap=&quot;&quot; file=&quot;&quot; uses=&quot;&quot; uid=&quot;&quot; user=&quot;&quot; string=&quot;&quot; distinguish=&quot;&quot; and=&quot;&quot; contents=&quot;&quot; are=&quot;&quot; all=&quot;&quot; we=&quot;&quot; need=&quot;&quot; to=&quot;&quot; create=&quot;&quot; a=&quot;&quot; basic=&quot;&quot; authentication=&quot;&quot; it=&quot;&quot; should=&quot;&quot; also=&quot;&quot; be=&quot;&quot; noted=&quot;&quot; that=&quot;&quot; this=&quot;&quot; object=&quot;&quot; stored=&quot;&quot; in=&quot;&quot; users=&quot;&quot; organisational=&quot;&quot; which=&quot;&quot; is=&quot;&quot; located=&quot;&quot; outside=&quot;&quot; of=&quot;&quot; the=&quot;&quot; address=&quot;&quot; book=&quot;&quot; cat=&quot;&quot;&gt;&lt;eof&gt;&lt;br /&gt;The following LDAP search is requesting a listing of all entries starting from the base &quot;dc=indimail,dc=org&quot;. This should return all of the entries that where added in the previous step.&lt;br /&gt;&lt;br /&gt;% ldapsearch -x -b &#39;dc=indimail,dc=org&#39; &#39;(objectclass=*)&#39;&lt;br /&gt;&lt;br /&gt;# indimail.com&lt;br /&gt;dn: dc=indimail,dc=org&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: dcObject&lt;br /&gt;objectClass: organization&lt;br /&gt;o: Home LDAP Network&lt;br /&gt;dc: indimail&lt;br /&gt;&lt;br /&gt;# Manager, indimail.com&lt;br /&gt;dn: cn=Manager,dc=indimail,dc=org&lt;br /&gt;objectClass: organizationalRole&lt;br /&gt;cn: Manager&lt;br /&gt;&lt;br /&gt;# users, indimail.com&lt;br /&gt;dn: ou=users,dc=indimail,dc=org&lt;br /&gt;ou: users&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: organizationalUnit&lt;br /&gt;&lt;br /&gt;# addressbook, indimail.com&lt;br /&gt;dn: ou=addressbook,dc=indimail,dc=org&lt;br /&gt;ou: addressbook&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: organizationalUnit&lt;br /&gt;&lt;br /&gt;Now that we have defined and imported our directory scheme, we are able to create user entries to populate the addressbook. The following is a simple example LDIF entry for a contact.&lt;br /&gt;&lt;br /&gt;You can gain use slappasswd to generate a user password&lt;br /&gt;&lt;br /&gt;% slappasswd -h {MD5} -s manny&lt;br /&gt;{MD5}j+eKwOqr8vR0sN46lo4WXg==&lt;br /&gt;&lt;br /&gt;The first line (dn:) designates where about in the directory the entry will belong when its imported, this should be changed to suit your needs.&lt;br /&gt;&lt;br /&gt;% cat &gt; newcontact.ldif&lt;br /&gt;dn:uid=mbhangui,ou=addressbook,dc=indimail,dc=org&lt;br /&gt;uid: mbhangui&lt;br /&gt;cn: Manvendra Bhangui&lt;br /&gt;gn: Manvendra&lt;br /&gt;sn: Bhangui&lt;br /&gt;o: Consim Info Pvt. Ltd.&lt;br /&gt;l: Mandaivelli&lt;br /&gt;street: #94 Coconut Republic&lt;br /&gt;st: TN&lt;br /&gt;postalCode: 600028&lt;br /&gt;pager: +91 44 5555 1111&lt;br /&gt;homePhone: +91 44 5555 1234&lt;br /&gt;telephoneNumber: +91 44 5555 1235&lt;br /&gt;facsimileTelephoneNumber: +91 44 5555 1236&lt;br /&gt;mobile: +91 99401xxxxx&lt;br /&gt;mail: m.bhangui@gmail.com&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: inetOrgPerson&lt;br /&gt;userPassword: {MD5}j+eKwOqr8vR0sN46lo4WXg==&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;cntrl-d&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The contents of the LDIF file can be added into the directory service using the &quot;ldapadd&quot; command below.&lt;br /&gt;&lt;br /&gt;% ldapadd -x -D &#39;cn=Manager,dc=indimail,dc=org&#39; -W -f newcontact.ldif&lt;br /&gt;Enter LDAP Password:&lt;br /&gt;adding new entry &quot;uid=mbhangui,ou=addressbook,dc=indimail,dc=org&quot;&lt;br /&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;br /&gt;&lt;eof bin=&quot;&quot; sh=&quot;&quot; exec=&quot;&quot; usr=&quot;&quot; sbin=&quot;&quot; slapd=&quot;&quot; u=&quot;&quot; ldap=&quot;&quot; f=&quot;&quot; etc=&quot;&quot; openldap=&quot;&quot; conf=&quot;&quot; d=&quot;&quot; 0=&quot;&quot; 2=&quot;&quot;&gt;&lt;eof sh=&quot;&quot; exec=&quot;&quot; setuidgid=&quot;&quot; qmaill=&quot;&quot; bin=&quot;&quot; multilog=&quot;&quot; t=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; eof=&quot;&quot; create=&quot;&quot; so=&quot;&quot; that=&quot;&quot; does=&quot;&quot; not=&quot;&quot; this=&quot;&quot; new=&quot;&quot; yet=&quot;&quot; mkdir=&quot;&quot; p=&quot;&quot; run2=&quot;&quot; tmp=&quot;&quot; run1=&quot;&quot; chmod=&quot;&quot; x=&quot;&quot; log=&quot;&quot; run=&quot;&quot; rename=&quot;&quot; for=&quot;&quot; svscan=&quot;&quot; to=&quot;&quot; discover=&quot;&quot; and=&quot;&quot; start=&quot;&quot; mv=&quot;&quot; sudo=&quot;&quot; svstat=&quot;&quot; 389=&quot;&quot; service=&quot;&quot; slapd=&quot;&quot; up=&quot;&quot; pid=&quot;&quot; 4=&quot;&quot; seconds=&quot;&quot;&gt;&lt;eof bin=&quot;&quot; sh=&quot;&quot; exec=&quot;&quot; usr=&quot;&quot; sbin=&quot;&quot; slapd=&quot;&quot; u=&quot;&quot; ldap=&quot;&quot; f=&quot;&quot; etc=&quot;&quot; openldap=&quot;&quot; conf=&quot;&quot; d=&quot;&quot; 0=&quot;&quot; 2=&quot;&quot;&gt;&lt;eof sh=&quot;&quot; exec=&quot;&quot; setuidgid=&quot;&quot; qmaill=&quot;&quot; bin=&quot;&quot; multilog=&quot;&quot; t=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; eof=&quot;&quot; create=&quot;&quot; so=&quot;&quot; does=&quot;&quot; not=&quot;&quot; new=&quot;&quot; yet=&quot;&quot; mkdir=&quot;&quot; p=&quot;&quot; run2=&quot;&quot; tmp=&quot;&quot; run1=&quot;&quot; chmod=&quot;&quot; log=&quot;&quot; run=&quot;&quot; rename=&quot;&quot; for=&quot;&quot; svscan=&quot;&quot; discover=&quot;&quot; mv=&quot;&quot; sudo=&quot;&quot; svstat=&quot;&quot; 389=&quot;&quot; slapd=&quot;&quot; up=&quot;&quot; pid=&quot;&quot; 4=&quot;&quot; seconds=&quot;&quot; addressbook=&quot;&quot; imported=&quot;&quot; exported=&quot;&quot; service=&quot;&quot; using=&quot;&quot; data=&quot;&quot; interchange=&quot;&quot; format=&quot;&quot; as=&quot;&quot; defined=&quot;&quot; an=&quot;&quot; specifies=&quot;&quot; contents=&quot;&quot; entry=&quot;&quot; in=&quot;&quot; human=&quot;&quot; readable=&quot;&quot; text=&quot;&quot; this=&quot;&quot; allows=&quot;&quot; quick=&quot;&quot; manipulation=&quot;&quot; file=&quot;&quot; entries=&quot;&quot; into=&quot;&quot; now=&quot;&quot; that=&quot;&quot; ldap=&quot;&quot; server=&quot;&quot; has=&quot;&quot; been=&quot;&quot; configured=&quot;&quot; and=&quot;&quot; is=&quot;&quot; can=&quot;&quot; conduct=&quot;&quot; a=&quot;&quot; simple=&quot;&quot; search=&quot;&quot; of=&quot;&quot; naming=&quot;&quot; context=&quot;&quot; see=&quot;&quot; directory=&quot;&quot; information=&quot;&quot; before=&quot;&quot; we=&quot;&quot; start=&quot;&quot; import=&quot;&quot; our=&quot;&quot; should=&quot;&quot; be=&quot;&quot; similar=&quot;&quot; to=&quot;&quot; the=&quot;&quot; example=&quot;&quot; ldapsearch=&quot;&quot; x=&quot;&quot; b=&quot;&quot; s=&quot;&quot; objectclass=&quot;*)&#39;&quot; namingcontexts=&quot;&quot; extended=&quot;&quot; ldif=&quot;&quot; ldapv3=&quot;&quot; base=&quot;&quot;&gt;&lt;eof domain=&quot;&quot; server=&quot;&quot; eof=&quot;&quot; ldapadd=&quot;&quot; d=&quot;&quot; w=&quot;&quot; f=&quot;&quot; enter=&quot;&quot; adding=&quot;&quot; new=&quot;&quot; search=&quot;&quot; requesting=&quot;&quot; listing=&quot;&quot; starting=&quot;&quot; from=&quot;&quot; base=&quot;&quot; return=&quot;&quot; all=&quot;&quot; of=&quot;&quot; added=&quot;&quot; previous=&quot;&quot; ldapsearch=&quot;&quot; x=&quot;&quot; b=&quot;&quot; objectclass=&quot;*)&#39;&quot; dc=&quot;indimail,dc=org&quot; dcobject=&quot;&quot; organization=&quot;&quot; home=&quot;&quot; ldap=&quot;&quot; network=&quot;&quot; indimail=&quot;&quot; cn=&quot;Manager,dc=indimail,dc=org&quot; organizationalrole=&quot;&quot; manager=&quot;&quot; users=&quot;&quot; com=&quot;&quot; ou=&quot;users,dc=indimail,dc=org&quot; addressbook=&quot;&quot; top=&quot;&quot; organizationalunit=&quot;&quot; now=&quot;&quot; that=&quot;&quot; have=&quot;&quot; defined=&quot;&quot; and=&quot;&quot; imported=&quot;&quot; our=&quot;&quot; we=&quot;&quot; are=&quot;&quot; able=&quot;&quot; create=&quot;&quot; user=&quot;&quot; entries=&quot;&quot; populate=&quot;&quot; following=&quot;&quot; is=&quot;&quot; simple=&quot;&quot; example=&quot;&quot; ldif=&quot;&quot; for=&quot;&quot; a=&quot;&quot; first=&quot;&quot; line=&quot;&quot; designates=&quot;&quot; where=&quot;&quot; about=&quot;&quot; in=&quot;&quot; directory=&quot;&quot; the=&quot;&quot; entry=&quot;&quot; will=&quot;&quot; belong=&quot;&quot; when=&quot;&quot; its=&quot;&quot; this=&quot;&quot; should=&quot;&quot; be=&quot;&quot; changed=&quot;&quot; to=&quot;&quot; suit=&quot;&quot; your=&quot;&quot; cat=&quot;&quot;&gt;&lt;eof manvendra=&quot;&quot; bhangui=&quot;&quot; home=&quot;&quot; velachery=&quot;&quot; 12=&quot;&quot; banana=&quot;&quot; republic=&quot;&quot; tn=&quot;&quot; 600042=&quot;&quot; 1111=&quot;&quot; 1234=&quot;&quot; 1235=&quot;&quot; 5555=&quot;&quot; 1236=&quot;&quot; 0400=&quot;&quot; 123=&quot;&quot; com=&quot;&quot; top=&quot;&quot; inetorgperson=&quot;&quot; eof=&quot;&quot; added=&quot;&quot; standard=&quot;&quot; defines=&quot;&quot; only=&quot;&quot; add=&quot;&quot; manager=&quot;&quot; authenicating=&quot;&quot; ldapadd=&quot;&quot; x=&quot;&quot; w=&quot;&quot; f=&quot;&quot; enter=&quot;&quot; adding=&quot;&quot; entry=&quot;&quot; cn=&quot;Manvendra&quot; section=&quot;&quot; below=&quot;&quot; details=&quot;&quot; based=&quot;&quot; on=&quot;&quot; have=&quot;&quot; been=&quot;&quot; defined=&quot;&quot; deny=&quot;&quot; everyone=&quot;&quot; however=&quot;&quot; bind=&quot;&quot; authenticated=&quot;&quot; allowed=&quot;&quot; change=&quot;&quot; their=&quot;&quot; own=&quot;&quot; entries=&quot;&quot; ou=&quot;addressbook,dc=indimail,dc=org&quot; self=&quot;&quot; anonymous=&quot;&quot; auth=&quot;&quot; read=&quot;&quot; subtree=&quot;ou=addressbook,dc=indimail,dc=org&quot; write=&quot;&quot; control=&quot;&quot; list=&quot;&quot; may=&quot;&quot; prone=&quot;&quot; syntax=&quot;&quot; errors=&quot;&quot; accepted=&quot;&quot; by=&quot;&quot; tested=&quot;&quot; before=&quot;&quot; etc=&quot;&quot; d=&quot;&quot; slapd=&quot;&quot; configtest=&quot;&quot; configuration=&quot;&quot; passes=&quot;&quot; integrity=&quot;&quot; sudo=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; bin=&quot;&quot; svc=&quot;&quot; u=&quot;&quot; service=&quot;&quot; 389=&quot;&quot; new=&quot;&quot; controls=&quot;&quot; prevent=&quot;&quot; unauthorised=&quot;&quot; access=&quot;&quot; directory=&quot;&quot; simple=&quot;&quot; must=&quot;&quot; prepared=&quot;&quot; allow=&quot;&quot; people=&quot;&quot; authenticate=&quot;&quot; with=&quot;&quot; objects=&quot;&quot; will=&quot;&quot; server=&quot;&quot; using=&quot;&quot; remember=&quot;&quot; everything=&quot;&quot; ldif=&quot;&quot; human=&quot;&quot; readable=&quot;&quot; so=&quot;&quot; very=&quot;&quot; bad=&quot;&quot; especially=&quot;&quot; if=&quot;&quot; you=&quot;&quot; following=&quot;&quot; guide=&quot;&quot; no=&quot;&quot; plain=&quot;&quot; passwords=&quot;&quot; application=&quot;&quot; used=&quot;&quot; these=&quot;&quot; saved=&quot;&quot; store=&quot;&quot; text=&quot;&quot; does=&quot;&quot; mean=&quot;&quot; completely=&quot;&quot; just=&quot;&quot; means=&quot;&quot; they=&quot;&quot; not=&quot;&quot; easily=&quot;&quot; attacker=&quot;&quot; subject=&quot;&quot; value=&quot;&quot; brute=&quot;&quot; force=&quot;&quot; but=&quot;&quot; would=&quot;&quot; take=&quot;&quot; them=&quot;&quot; an=&quot;&quot; awfully=&quot;&quot; long=&quot;&quot; physical=&quot;&quot; security=&quot;&quot; still=&quot;&quot; rzmbkch3wwemnhdanh=&quot;&quot; l3oynzhsifpzf=&quot;&quot; algorithm=&quot;&quot; for=&quot;&quot; hashed=&quot;&quot; password=&quot;&quot; changed=&quot;&quot; at=&quot;&quot; command=&quot;&quot; line=&quot;&quot; other=&quot;&quot; default=&quot;&quot; type=&quot;&quot; slappasswd=&quot;&quot; h=&quot;&quot; ekwoqr8vr0sn46lo4wxg=&quot;=&quot; can=&quot;&quot; now=&quot;&quot; created=&quot;&quot; imported=&quot;&quot; into=&quot;&quot; ldap=&quot;&quot; file=&quot;&quot; uses=&quot;&quot; uid=&quot;&quot; user=&quot;&quot; string=&quot;&quot; distinguish=&quot;&quot; and=&quot;&quot; contents=&quot;&quot; are=&quot;&quot; all=&quot;&quot; we=&quot;&quot; need=&quot;&quot; to=&quot;&quot; create=&quot;&quot; a=&quot;&quot; basic=&quot;&quot; authentication=&quot;&quot; it=&quot;&quot; should=&quot;&quot; also=&quot;&quot; be=&quot;&quot; noted=&quot;&quot; that=&quot;&quot; this=&quot;&quot; object=&quot;&quot; stored=&quot;&quot; in=&quot;&quot; users=&quot;&quot; organisational=&quot;&quot; which=&quot;&quot; is=&quot;&quot; located=&quot;&quot; outside=&quot;&quot; of=&quot;&quot; the=&quot;&quot; address=&quot;&quot; book=&quot;&quot; cat=&quot;&quot;&gt;&lt;eof&gt;If you do not require an address book and just require a basic user object to use for authenticaton, a basic user object can be created and imported into the LDAP server. This file uses the &quot;UID&quot; (User ID) string to distinguish the object and the contents are all that we need to create a basic authentication mechanism.&lt;br /&gt;&lt;br /&gt;It should also be noted that this object is stored in the &quot;users&quot; organisational unit, which is located outside of the address book directory.=&lt;br /&gt;&lt;br /&gt;% cat &gt; useraccount.ldif&lt;br /&gt;dn:uid=postmaster,ou=users,dc=indimail,dc=org&lt;br /&gt;uid: postmaster&lt;br /&gt;userPassword: {MD5}j+eKwOqr8vR0sN46lo4WXg==&lt;br /&gt;objectClass: top&lt;br /&gt;objectClass: account&lt;br /&gt;objectClass: simpleSecurityObject&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;cntrl-d&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;% ldapadd -x -D &#39;cn=Manager,dc=indimail,dc=org&#39; -W -f useraccount.ldif&lt;br /&gt;Enter LDAP Password:&lt;br /&gt;adding new entry &quot;uid=postmaster,ou=users,dc=indimail,dc=org&quot;&lt;br /&gt;&lt;br /&gt;For mbhangui to authenticate to the server, one needs to pass&lt;br /&gt;&quot;uid=mbhangui,ou=users,dc=indimail,dc=org&quot; as username along with the the plain text value of password, the hashed value is only for storage purposes.&lt;br /&gt;&lt;br /&gt;% ldapsearch -x -b &#39;ou=AddressBook,dc=indimail,dc=org&#39; \&lt;br /&gt;-D &quot;uid=mbhangui,ou=users,dc=indimail,dc=org&quot; &#39;(objectclass=*)&#39; \&lt;br /&gt;-s sub -w manny&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Backing up LDAP Database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To export&lt;br /&gt;% sudo /var/indimail/bin/svc -d /service/slapd.389&lt;br /&gt;% slapcat -vl /etc/openldap/backup_slapd.ldif&lt;br /&gt;% sudo /var/indimail/bin/svc -u /service/slapd.389&lt;br /&gt;&lt;br /&gt;To import&lt;br /&gt;% sudo /var/indimail/bin/svc -d /service/slapd.389&lt;br /&gt;% slapadd -vl /etc/openldap/backup_slapd.ldif&lt;br /&gt;% chown ldap.ldap /var/lib/ldap/*&lt;br /&gt;% sudo /var/indimail/bin/svc -u /service/slapd.389&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Email Client Settings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The last steps in setting up the shared address book is to configure the users email clients to access the LDAP server.&lt;br /&gt;&lt;br /&gt;The following table contains some of the information needed to configure the client applications. Note the username will need to be written as the complete &quot;distinguished name&quot; value so the server knows which object to authenticate.&lt;br /&gt;&lt;br /&gt;LDAP Server      : your_host_IP:389&lt;br /&gt;Search Base      : ou=addressbook,dc=indimail,dc=org&lt;br /&gt;Login Method     : use distinguished name (if listed)&lt;br /&gt;Username         : uid=user,ou=addressbook,dc=indimail,dc=org&lt;br /&gt;Password         : As entered in newcontact.ldif file (plain text version)&lt;br /&gt;Secure Connection: Never (unless encryption has been configured)&lt;br /&gt;&lt;br /&gt;In the above &#39;user&#39; is the actual user created in ldap by using ldapadd&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;References&lt;br /&gt;&lt;/span&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.brennan.id.au/20-Shared_Address_Book_LDAP.html&quot;&gt;http://www.brennan.id.au/20-Shared_Address_Book_LDAP.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.wains.be/mirrors/feldt.com/&quot;&gt;http://www.wains.be/mirrors/feldt.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://linsec.ca/Using_OpenLDAP_as_an_Address_Book&quot;&gt;http://linsec.ca/Using_OpenLDAP_as_an_Address_Book&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;eof bin=&quot;&quot; sh=&quot;&quot; exec=&quot;&quot; usr=&quot;&quot; sbin=&quot;&quot; slapd=&quot;&quot; u=&quot;&quot; ldap=&quot;&quot; f=&quot;&quot; etc=&quot;&quot; openldap=&quot;&quot; conf=&quot;&quot; d=&quot;&quot; 0=&quot;&quot; 2=&quot;&quot;&gt;&lt;eof sh=&quot;&quot; exec=&quot;&quot; setuidgid=&quot;&quot; qmaill=&quot;&quot; bin=&quot;&quot; multilog=&quot;&quot; t=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; eof=&quot;&quot; create=&quot;&quot; so=&quot;&quot; that=&quot;&quot; does=&quot;&quot; not=&quot;&quot; this=&quot;&quot; new=&quot;&quot; yet=&quot;&quot; mkdir=&quot;&quot; p=&quot;&quot; run2=&quot;&quot; tmp=&quot;&quot; run1=&quot;&quot; chmod=&quot;&quot; x=&quot;&quot; log=&quot;&quot; run=&quot;&quot; rename=&quot;&quot; for=&quot;&quot; svscan=&quot;&quot; to=&quot;&quot; discover=&quot;&quot; and=&quot;&quot; start=&quot;&quot; mv=&quot;&quot; sudo=&quot;&quot; svstat=&quot;&quot; 389=&quot;&quot; service=&quot;&quot; slapd=&quot;&quot; up=&quot;&quot; pid=&quot;&quot; 4=&quot;&quot; seconds=&quot;&quot;&gt;&lt;eof bin=&quot;&quot; sh=&quot;&quot; exec=&quot;&quot; usr=&quot;&quot; sbin=&quot;&quot; slapd=&quot;&quot; u=&quot;&quot; ldap=&quot;&quot; f=&quot;&quot; etc=&quot;&quot; openldap=&quot;&quot; conf=&quot;&quot; d=&quot;&quot; 0=&quot;&quot; 2=&quot;&quot;&gt;&lt;eof sh=&quot;&quot; exec=&quot;&quot; setuidgid=&quot;&quot; qmaill=&quot;&quot; bin=&quot;&quot; multilog=&quot;&quot; t=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; eof=&quot;&quot; create=&quot;&quot; so=&quot;&quot; does=&quot;&quot; not=&quot;&quot; new=&quot;&quot; yet=&quot;&quot; mkdir=&quot;&quot; p=&quot;&quot; run2=&quot;&quot; tmp=&quot;&quot; run1=&quot;&quot; chmod=&quot;&quot; log=&quot;&quot; run=&quot;&quot; rename=&quot;&quot; for=&quot;&quot; svscan=&quot;&quot; discover=&quot;&quot; mv=&quot;&quot; sudo=&quot;&quot; svstat=&quot;&quot; 389=&quot;&quot; slapd=&quot;&quot; up=&quot;&quot; pid=&quot;&quot; 4=&quot;&quot; seconds=&quot;&quot; addressbook=&quot;&quot; imported=&quot;&quot; exported=&quot;&quot; service=&quot;&quot; using=&quot;&quot; data=&quot;&quot; interchange=&quot;&quot; format=&quot;&quot; as=&quot;&quot; defined=&quot;&quot; an=&quot;&quot; specifies=&quot;&quot; contents=&quot;&quot; entry=&quot;&quot; in=&quot;&quot; human=&quot;&quot; readable=&quot;&quot; text=&quot;&quot; this=&quot;&quot; allows=&quot;&quot; quick=&quot;&quot; manipulation=&quot;&quot; file=&quot;&quot; entries=&quot;&quot; into=&quot;&quot; now=&quot;&quot; that=&quot;&quot; ldap=&quot;&quot; server=&quot;&quot; has=&quot;&quot; been=&quot;&quot; configured=&quot;&quot; and=&quot;&quot; is=&quot;&quot; can=&quot;&quot; conduct=&quot;&quot; a=&quot;&quot; simple=&quot;&quot; search=&quot;&quot; of=&quot;&quot; naming=&quot;&quot; context=&quot;&quot; see=&quot;&quot; directory=&quot;&quot; information=&quot;&quot; before=&quot;&quot; we=&quot;&quot; start=&quot;&quot; import=&quot;&quot; our=&quot;&quot; should=&quot;&quot; be=&quot;&quot; similar=&quot;&quot; to=&quot;&quot; the=&quot;&quot; example=&quot;&quot; ldapsearch=&quot;&quot; x=&quot;&quot; b=&quot;&quot; s=&quot;&quot; objectclass=&quot;*)&#39;&quot; namingcontexts=&quot;&quot; extended=&quot;&quot; ldif=&quot;&quot; ldapv3=&quot;&quot; base=&quot;&quot;&gt;&lt;eof domain=&quot;&quot; server=&quot;&quot; eof=&quot;&quot; ldapadd=&quot;&quot; d=&quot;&quot; w=&quot;&quot; f=&quot;&quot; enter=&quot;&quot; adding=&quot;&quot; new=&quot;&quot; search=&quot;&quot; requesting=&quot;&quot; listing=&quot;&quot; starting=&quot;&quot; from=&quot;&quot; base=&quot;&quot; return=&quot;&quot; all=&quot;&quot; of=&quot;&quot; added=&quot;&quot; previous=&quot;&quot; ldapsearch=&quot;&quot; x=&quot;&quot; b=&quot;&quot; objectclass=&quot;*)&#39;&quot; dc=&quot;indimail,dc=org&quot; dcobject=&quot;&quot; organization=&quot;&quot; home=&quot;&quot; ldap=&quot;&quot; network=&quot;&quot; indimail=&quot;&quot; cn=&quot;Manager,dc=indimail,dc=org&quot; organizationalrole=&quot;&quot; manager=&quot;&quot; users=&quot;&quot; com=&quot;&quot; ou=&quot;users,dc=indimail,dc=org&quot; addressbook=&quot;&quot; top=&quot;&quot; organizationalunit=&quot;&quot; now=&quot;&quot; that=&quot;&quot; have=&quot;&quot; defined=&quot;&quot; and=&quot;&quot; imported=&quot;&quot; our=&quot;&quot; we=&quot;&quot; are=&quot;&quot; able=&quot;&quot; create=&quot;&quot; user=&quot;&quot; entries=&quot;&quot; populate=&quot;&quot; following=&quot;&quot; is=&quot;&quot; simple=&quot;&quot; example=&quot;&quot; ldif=&quot;&quot; for=&quot;&quot; a=&quot;&quot; first=&quot;&quot; line=&quot;&quot; designates=&quot;&quot; where=&quot;&quot; about=&quot;&quot; in=&quot;&quot; directory=&quot;&quot; the=&quot;&quot; entry=&quot;&quot; will=&quot;&quot; belong=&quot;&quot; when=&quot;&quot; its=&quot;&quot; this=&quot;&quot; should=&quot;&quot; be=&quot;&quot; changed=&quot;&quot; to=&quot;&quot; suit=&quot;&quot; your=&quot;&quot; cat=&quot;&quot;&gt;&lt;eof manvendra=&quot;&quot; bhangui=&quot;&quot; home=&quot;&quot; velachery=&quot;&quot; 12=&quot;&quot; banana=&quot;&quot; republic=&quot;&quot; tn=&quot;&quot; 600042=&quot;&quot; 1111=&quot;&quot; 1234=&quot;&quot; 1235=&quot;&quot; 5555=&quot;&quot; 1236=&quot;&quot; 0400=&quot;&quot; 123=&quot;&quot; com=&quot;&quot; top=&quot;&quot; inetorgperson=&quot;&quot; eof=&quot;&quot; added=&quot;&quot; standard=&quot;&quot; defines=&quot;&quot; only=&quot;&quot; add=&quot;&quot; manager=&quot;&quot; authenicating=&quot;&quot; ldapadd=&quot;&quot; x=&quot;&quot; w=&quot;&quot; f=&quot;&quot; enter=&quot;&quot; adding=&quot;&quot; entry=&quot;&quot; cn=&quot;Manvendra&quot; section=&quot;&quot; below=&quot;&quot; details=&quot;&quot; based=&quot;&quot; on=&quot;&quot; have=&quot;&quot; been=&quot;&quot; defined=&quot;&quot; deny=&quot;&quot; everyone=&quot;&quot; however=&quot;&quot; bind=&quot;&quot; authenticated=&quot;&quot; allowed=&quot;&quot; change=&quot;&quot; their=&quot;&quot; own=&quot;&quot; entries=&quot;&quot; ou=&quot;addressbook,dc=indimail,dc=org&quot; self=&quot;&quot; anonymous=&quot;&quot; auth=&quot;&quot; read=&quot;&quot; subtree=&quot;ou=addressbook,dc=indimail,dc=org&quot; write=&quot;&quot; control=&quot;&quot; list=&quot;&quot; may=&quot;&quot; prone=&quot;&quot; syntax=&quot;&quot; errors=&quot;&quot; accepted=&quot;&quot; by=&quot;&quot; tested=&quot;&quot; before=&quot;&quot; etc=&quot;&quot; d=&quot;&quot; slapd=&quot;&quot; configtest=&quot;&quot; configuration=&quot;&quot; passes=&quot;&quot; integrity=&quot;&quot; sudo=&quot;&quot; var=&quot;&quot; indimail=&quot;&quot; bin=&quot;&quot; svc=&quot;&quot; u=&quot;&quot; service=&quot;&quot; 389=&quot;&quot; new=&quot;&quot; controls=&quot;&quot; prevent=&quot;&quot; unauthorised=&quot;&quot; access=&quot;&quot; directory=&quot;&quot; simple=&quot;&quot; must=&quot;&quot; prepared=&quot;&quot; allow=&quot;&quot; people=&quot;&quot; authenticate=&quot;&quot; with=&quot;&quot; objects=&quot;&quot; will=&quot;&quot; server=&quot;&quot; using=&quot;&quot; remember=&quot;&quot; everything=&quot;&quot; ldif=&quot;&quot; human=&quot;&quot; readable=&quot;&quot; so=&quot;&quot; very=&quot;&quot; bad=&quot;&quot; especially=&quot;&quot; if=&quot;&quot; you=&quot;&quot; following=&quot;&quot; guide=&quot;&quot; no=&quot;&quot; plain=&quot;&quot; passwords=&quot;&quot; application=&quot;&quot; used=&quot;&quot; these=&quot;&quot; saved=&quot;&quot; store=&quot;&quot; text=&quot;&quot; does=&quot;&quot; mean=&quot;&quot; completely=&quot;&quot; just=&quot;&quot; means=&quot;&quot; they=&quot;&quot; not=&quot;&quot; easily=&quot;&quot; attacker=&quot;&quot; subject=&quot;&quot; value=&quot;&quot; brute=&quot;&quot; force=&quot;&quot; but=&quot;&quot; would=&quot;&quot; take=&quot;&quot; them=&quot;&quot; an=&quot;&quot; awfully=&quot;&quot; long=&quot;&quot; physical=&quot;&quot; security=&quot;&quot; still=&quot;&quot; rzmbkch3wwemnhdanh=&quot;&quot; l3oynzhsifpzf=&quot;&quot; algorithm=&quot;&quot; for=&quot;&quot; hashed=&quot;&quot; password=&quot;&quot; changed=&quot;&quot; at=&quot;&quot; command=&quot;&quot; line=&quot;&quot; other=&quot;&quot; default=&quot;&quot; type=&quot;&quot; slappasswd=&quot;&quot; h=&quot;&quot; ekwoqr8vr0sn46lo4wxg=&quot;=&quot; can=&quot;&quot; now=&quot;&quot; created=&quot;&quot; imported=&quot;&quot; into=&quot;&quot; ldap=&quot;&quot; file=&quot;&quot; uses=&quot;&quot; uid=&quot;&quot; user=&quot;&quot; string=&quot;&quot; distinguish=&quot;&quot; and=&quot;&quot; contents=&quot;&quot; are=&quot;&quot; all=&quot;&quot; we=&quot;&quot; need=&quot;&quot; to=&quot;&quot; create=&quot;&quot; a=&quot;&quot; basic=&quot;&quot; authentication=&quot;&quot; it=&quot;&quot; should=&quot;&quot; also=&quot;&quot; be=&quot;&quot; noted=&quot;&quot; that=&quot;&quot; this=&quot;&quot; object=&quot;&quot; stored=&quot;&quot; in=&quot;&quot; users=&quot;&quot; organisational=&quot;&quot; which=&quot;&quot; is=&quot;&quot; located=&quot;&quot; outside=&quot;&quot; of=&quot;&quot; the=&quot;&quot; address=&quot;&quot; book=&quot;&quot; cat=&quot;&quot;&gt;&lt;eof&gt;&lt;br /&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;&lt;/eof&gt;</description><link>http://indimail.blogspot.com/2010/06/using-openldap-for-addressbook.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>21</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-160004317612040397</guid><pubDate>Fri, 21 May 2010 02:09:00 +0000</pubDate><atom:updated>2012-07-30T12:50:08.483+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail-mini QMQP indimail</category><title>Mini IndiMail Installation</title><description>&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; 1.7.3 comes with option in svctool to install QMQP service. &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; 1.7.5 will come with RPM package indimail-mini which will allow you to install a mini indimail installation. A mini indimail installation comes up with a bare minimum list of programs to enable you to send out mails. A indimail-mini installation doesn&#39;t have a mail queue. Instead it gives each new message to a central server through QMQP.&lt;br /&gt;
&lt;br /&gt;
Many of my friends run web servers which need to send out emails. If you already have an installation of &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail messaging server&lt;/a&gt; on your network, you can quickly setup a mini indimail installation on your web server, without impacting the performance by using QMQP. To use QMQP service, you need to have QMQP service running on your IndiMail messaging server. All other servers (including your webservers) can have a indimail-mini installation.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3-Q5o2cWiEikmOYRO1HCCuBpYPfxuuj3v_DKDK7plYoHrwx6iRFE-dqiUo5nLOPJuVEccjdGlIwdi6EJKaczP8tKqZ1lX1Evbjh3xDnf12yAaIVS4o_m-RiV_ji7D3dW3lONq6foorA/s1600/mini-indimail.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3-Q5o2cWiEikmOYRO1HCCuBpYPfxuuj3v_DKDK7plYoHrwx6iRFE-dqiUo5nLOPJuVEccjdGlIwdi6EJKaczP8tKqZ1lX1Evbjh3xDnf12yAaIVS4o_m-RiV_ji7D3dW3lONq6foorA/s320/mini-indimail.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;How do I set up a QMQP service?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You need to have at least one host on your network offering QMQP service to your clients. IndiMail includes a QMQP server, qmail-qmqpd. Here&#39;s how to set up  QMQP service to authorized client hosts on your IndiMail messaging server.&lt;br /&gt;
&lt;br /&gt;
first create /var/indimail/etc/tcp.qmqp in tcprules format to allow queueing from the authorized hosts. make sure to deny connections from unauthorized hosts. for example, if queueing is allowed from 1.2.3.*:&lt;br /&gt;
&lt;br /&gt;
1.2.3.:allow&lt;br /&gt;
:deny&lt;br /&gt;
&lt;br /&gt;
Then create /var/indimail/etc/tcp.qmqp.cdb:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;% sudo /var/indimail/bin/tcprules /var/indimail/etc/tcp.qmqp.cdb \&lt;br /&gt;
/var/indimail/etc/qmqp.tmp &amp;lt; /var/indimail/etc/tcp.qmqp&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can change /var/indimail/etc/tcp.qmqp and run tcprules again at any time. Finally qmail-qmqpd to be run under supervise:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;% sudo /var/indimail/sbin/svctool --qmqp=628 --servicedir=/service \&lt;br /&gt;
--qbase=/var/indimail/queue --qcount=5 --qstart=1 \&lt;br /&gt;
--cntrldir=control --localip=0 \&lt;br /&gt;
--maxdaemons=75 --maxperip=25 --fsync --syncdir \&lt;br /&gt;
--memory=104857600 --min-free=52428800&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
628 is the TCP port for QMQP.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;How do I install indimail-mini?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
A indimail-mini installation is just like a indimail installation, except that it&#39;s much easier to set up:&lt;br /&gt;
&lt;br /&gt;
* You don&#39;t need MySQL&lt;br /&gt;
&lt;br /&gt;
* You don&#39;t need /var/indimail/alias. A indimail-mini installation doesn&#39;t do any local delivery.&lt;br /&gt;
&lt;br /&gt;
* You don&#39;t need indimail entries in /etc/group or /etc/passwd. indimail-mini runs with the same privileges as the user sending mail; it doesn&#39;t have any of its own files.&lt;br /&gt;
&lt;br /&gt;
* You don&#39;t need to start anything from your boot scripts. indimail-mini doesn&#39;t have a queue, so it doesn&#39;t need a long-running queue manager.&lt;br /&gt;
&lt;br /&gt;
* You don&#39;t need to add anything to inetd.conf. A null client doesn&#39;t receive incoming mail.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s what you do need:&lt;br /&gt;
&lt;br /&gt;
* qmail-qmqpc, forward, qmail-inject, sendmail, predate, datemail, mailsubj, qmail-showctl, maildirmake, maildir2mbox, maildirwatch, qail, elq, and pinq in /var/indimail/bin;&lt;br /&gt;
&lt;br /&gt;
* a symbolic link to qmail-qmqpc from /var/indimail/bin/qmail-queue;&lt;br /&gt;
&lt;br /&gt;
* symbolic links to /var/indimail/bin/sendmail from /usr/sbin/sendmail and /usr/lib/sendmail (for Fedora see the topic on /usr/sbin/alternatives below)&lt;br /&gt;
&lt;br /&gt;
* all the manual pages in /var/indimail/man;&lt;br /&gt;
&lt;br /&gt;
You can install all the above by manually copying the binaries and man pages from a host having standard IndiMail installation or you can using the indimail-mini RPM&lt;br /&gt;
&lt;br /&gt;
% sudo rpm -ivh indimail-mini-1.7.5-1.1.i386.rpm&lt;br /&gt;
&lt;br /&gt;
Apart from the binaries, you need to do the following&lt;br /&gt;
&lt;br /&gt;
* a list of IP addresses of QMQP servers, one per line, in /var/indimail/control/qmqpservers;&lt;br /&gt;
&lt;br /&gt;
* a copy of /var/indimail/control/me, /var/indimail/control/defaultdomain, and /var/indimail/control/plusdomain from your central server, so that qmail-inject uses appropriate host names in outgoing mail; and&lt;br /&gt;
&lt;br /&gt;
* this host&#39;s name in /var/indimail/control/idhost, so that qmail-inject generates Message-ID without any risk of collision.&lt;br /&gt;
&lt;br /&gt;
Everything can be shared across hosts except for /var/indimail/control/idhost.&lt;br /&gt;
&lt;br /&gt;
Remember that users won&#39;t be able to send mail if all the QMQP servers are down. Most sites have two or three independent QMQP servers.&lt;br /&gt;
&lt;br /&gt;
Note that users can still use all the qmail-inject environment variables to control the appearance of their outgoing messages.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Fedora - Using /usr/sbin/alternatives&lt;/span&gt;&lt;br /&gt;
Sometimes two or more Fedora package exist that serve the same purpose.  The &lt;i&gt;alternatives&lt;/i&gt; system provides a mechanism for selecting an  active default application from several valid alternatives. You can use the &lt;span style=&quot;font-style: italic;&quot;&gt;alternatives&lt;/span&gt; system to configure as an alternative MTA for your system. Using alternatives, you don&#39;t have to create the links to /var/indimail/bin/sendmail manually as instructed above.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;% sudo /usr/sbin/alternatives --install \&lt;br /&gt;
/usr/sbin/sendmail mta /var/indimail/bin/sendmail 120 \&lt;br /&gt;
--slave /usr/share/man/man8/sendmail.8.gz mta-sendmailman \&lt;br /&gt;
/var/indimail/man/man8/qmail-inject.8.gz \&lt;br /&gt;
--slave /usr/lib/sendmail mta-sendmail \&lt;br /&gt;
/var/indimail/bin/sendmail&lt;br /&gt;
/usr/sbin/alternatives --set mta /var/indimail/bin/sendmail&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can download IndiMail at&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/indimail/&quot;&gt;http://sourceforge.net/projects/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The RPM can be downloaded from&lt;br /&gt;
&lt;a href=&quot;http://download.opensuse.org/repositories/home:/indimail/&quot;&gt;http://download.opensuse.org/repositories/home:/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: This document is based on &#39;&lt;a href=&quot;http://cr.yp.to/qmail/mini.html&quot;&gt;Installing min-qmail&lt;/a&gt;&#39; by djb</description><link>http://indimail.blogspot.com/2010/05/mini-indimail-installation.html</link><author>noreply@blogger.com (cprogrammer)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3-Q5o2cWiEikmOYRO1HCCuBpYPfxuuj3v_DKDK7plYoHrwx6iRFE-dqiUo5nLOPJuVEccjdGlIwdi6EJKaczP8tKqZ1lX1Evbjh3xDnf12yAaIVS4o_m-RiV_ji7D3dW3lONq6foorA/s72-c/mini-indimail.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-6541894185002371495</guid><pubDate>Sun, 02 May 2010 05:30:00 +0000</pubDate><atom:updated>2010-05-02T11:38:59.938+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">&quot;instant bulletins&quot; bulletin vbulletin IndiMail bulkmail</category><title>Instant Mail to domains added by vadddomain</title><description>&lt;a href=&quot;http://www.indimail.org&quot;&gt;IndiMail&lt;/a&gt; has a program called &lt;span style=&quot;font-weight: bold;&quot;&gt;vbulletin&lt;/span&gt; using which you can instantly email all your subscribers in a domain that has been created using vadddomain. Whenever an authentication requests comes to IndiMail through POP3, IMAP or authenticated SMTP, a hook called &lt;span style=&quot;font-weight: bold;&quot;&gt;Login_Tasks&lt;/span&gt; gets called. One of the job that &lt;span style=&quot;font-weight: bold;&quot;&gt;Login_Tasks&lt;/span&gt; does is to look for a file, in &lt;a href=&quot;http://www.faqs.org/rfcs/rfc822.html&quot;&gt;RFC822&lt;/a&gt; format, with &quot;,all&quot;  in the end of the filename. If such a file is found, it is copied to the user&#39;s Maildir. By using the timestamp of the original file, &lt;span style=&quot;font-weight: bold;&quot;&gt;Login_Tasks&lt;/span&gt; also ensures that the file is copied once only.&lt;br /&gt;&lt;br /&gt;The good thing about using bulletins is that the email is available instantly to all users. No queues, no delays and a huge saving of system resources.&lt;br /&gt;&lt;br /&gt;You can manually copy the file to &lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;/var/indimail/control/domain_name/bulk_mail&lt;/span&gt;&lt;/span&gt; directory or use the &lt;span style=&quot;font-weight: bold;&quot;&gt;vbulletin&lt;/span&gt; command&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;% vbulletin -f /tmp/new_offers.eml -a example.com&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;vbulletin&lt;/span&gt; is especially useful when you want to target a subsection of your users or when you have large number of mail delivery hosts in an IndiMail cluster.&lt;br /&gt;&lt;br /&gt;Read the man page &lt;span style=&quot;font-weight: bold;&quot;&gt;vbulletin(1)&lt;/span&gt; for more details</description><link>http://indimail.blogspot.com/2010/05/instant-mail-to-domains-added-by.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-6633987478891216753</guid><pubDate>Thu, 29 Apr 2010 06:48:00 +0000</pubDate><atom:updated>2017-12-03T21:11:34.513+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">&quot;spam control&quot; BADIP qmail-smtpd indimail</category><title>Spam Control using badip control file</title><description>


	
	
	
	&lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }&lt;/style&gt;


&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; has many methods
to help deal with spam. For detecting spam, &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt;
uses &lt;a href=&quot;http://bogofilter.sourceforge.net/&quot;&gt;bogofilter&lt;/a&gt; a
fast bayesian spam filter. &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt;&#39;s
qmail-smtpd which provides SMTP protocol is neatly integrated with
bogofilter. When &lt;a href=&quot;http://bogofilter.sourceforge.net/&quot;&gt;bogofilter&lt;/a&gt;
detects spam, qmail-smtpd prints the X-Bogosity header as part of
SMTP transaction log&lt;br /&gt;

&lt;div align=&quot;justify&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;%
grep &quot;X-Bogosity, Yes&quot; /var/log/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;svc&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;/smtpd.25/current&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;@400000004bc8183f01fcbc54
qmail-smtpd: pid 16158 from ::ffff:88.191.35.203 HELO &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;b&gt;X-Bogosity:
Yes, spamicity=0.999616, cutoff=9.90e-01, ham_cutoff=0.00e+00&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;,
queueID=6cs66604wfk,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

The value &quot;Yes&quot; in X-Bogosity indicates spam. You can
tell qmail-smtpd to reject such mails at SMTP just by doing&lt;br /&gt;

&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;#
echo 1 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;
/service/qmail-smtpd.25/variables/REJECTSPAM&lt;br /&gt;
# svc -&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;d
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;/service/qmail-smtpd.25&lt;br /&gt;
#
svc -&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;u&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;
/service/qmail-smtpd.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

SMTP clients which tries to send a spam mail will get the
following error at the end of the SMTP transaction&lt;br /&gt;

&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;b&gt;554 SPAM or junk mail threshold
exceeded (#5.7.1)&lt;/b&gt;&lt;/div&gt;
The mail will get bounced. In some cases you would want to issue
temporary error to such clients. In the above SMTP transaction log,
the IP address of the client was 88.191.35.203. To put such client&#39;s
into &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt;&#39;s SPAM
blacklist, you just need to put the IP address in the control file
/etc/indimail/control/badip&lt;br /&gt;

&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;#
echo 88.191.35.203 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;
/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;etc/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;indimail/control/badip&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

For turning on the BADIP functionality, you need to set the
BADIPCHECK or the BADIP environment variable. i.e.&lt;br /&gt;

&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;#
echo badip &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;/service/qmail-smtpd.25/variables/BADIP&lt;br /&gt;
#
svc -d /service/qmail-smtpd.25&lt;br /&gt;
# svc -u /service/qmail-smtpd.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;

Clients whose IP match an entry in badip will be greeted as below&lt;br /&gt;
&lt;div style=&quot;margin-left: 0.49in;&quot;&gt;
&lt;b&gt;
421 indimail.org sorry, your
IP (::ffff:88.191.35.203) is temporarily denied (#4.7.1)&lt;/b&gt;&lt;/div&gt;
Also the client will not be able to carry out any SMTP
transactions like ehlo, MAIL FROM, RCPT TO, etc&lt;br /&gt;

A large ISP can run the following command every day once in cron&lt;br /&gt;

&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;grep
&quot;X-Bogosity, Yes&quot; /var/log/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;svc/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;qmail.smtpd.25/current
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;etc&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;/indimail/control/badip&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

If your badip files becomes very large, you can also take
advantage of &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt;&#39;s
ability to use cdb (or you could use MySQL too)&lt;br /&gt;

&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot; style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;border: none; display: inline-block; padding: 0in;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;%
sudo /&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;b&gt;usr&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: times new roman;&quot;&gt;&lt;b&gt;/bin/qmail-cdb
badip&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;


</description><link>http://indimail.blogspot.com/2010/04/spam-control-using-badip-control-file.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-5700170800199294216</guid><pubDate>Mon, 26 Apr 2010 02:52:00 +0000</pubDate><atom:updated>2016-04-21T20:22:18.716+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail web &quot;web admin&quot; iwebadmin</category><title>Web Administration for IndiMail</title><description>I always find using the web ugly. It is a pain using the mouse almost all the time to do anything. One of the reasons I have never focussed on building a web administration tool for &lt;a href=&quot;http://www.indimail.org/&quot;&gt;Indimail&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Lately my users have been pestering me if something can be done about it. I have no knowledge of web scripting, etc. But using some bit of common sense, I have managed to make &lt;a href=&quot;http://sourceforge.net/projects/qmailadmin/&quot;&gt;qmailadmin&lt;/a&gt; work with &lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; by modifying the source code (lucky for me, they are written in C).&lt;br /&gt;
&lt;br /&gt;
For the admin user it provides&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;user addition&lt;/li&gt;
&lt;li&gt;user deletion&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;password change&lt;/li&gt;
&lt;li&gt;adding autoresponders&lt;/li&gt;
&lt;li&gt;deleting autoresponders&lt;/li&gt;
&lt;li&gt;modifying autoresponders&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;adding forwarding addresses&lt;/li&gt;
&lt;li&gt;deleting forwarding addresses&lt;/li&gt;
&lt;li&gt;modifying forwarding addreses&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;quota modification&lt;/li&gt;
&lt;/ol&gt;
For users other than the postmaster account it provides&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Password change&lt;/li&gt;
&lt;li&gt;add/modify/delete forwarding addresses&lt;/li&gt;
&lt;li&gt;add/modify/delete autoresponder&lt;/li&gt;
&lt;/ol&gt;
iwebadmin can be downloaded from &lt;a href=&quot;http://sourceforge.net/projects/indimail/&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/indimail/files/iwebadmin&quot;&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;http://sourceforge.net/projects/indimail/files/iwebadmin&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The RPM / Yum Repo file can be downloaded from&lt;br /&gt;
&lt;a href=&quot;http://software.opensuse.org/download.html?project=home:indimail&amp;amp;package=iwebadmin&quot;&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;http://software.opensuse.org/download.html?project=home:indimail&amp;amp;package=iwebadmin&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can download IndiMail at&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/indimail/&quot;&gt;http://sourceforge.net/projects/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The  RPM can be downloaded from&lt;br /&gt;
&lt;a href=&quot;http://download.opensuse.org/repositories/home:/indimail/&quot;&gt;http://download.opensuse.org/repositories/home:/indimail/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After installation, you just need to go to http://127.0.0.1/cgi-bin/iwebadmin&lt;br /&gt;
The image assets get installed in /var/www/html/images/iwebadmin&lt;br /&gt;
The html&amp;nbsp; assets get installed in /var/indimail/share/iwebadmin &lt;br /&gt;
&lt;br /&gt;
The screen shots are below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPDyNWxirp6YlclaCKZLR5efl2u_Y-Oyq4zqIDs9XncsgG1009PIk92e4eKWXaG_ObFXkZHpiNPLuNAxXc5AFrTq_mow5XFjBKMz8qCC33Wq2TN6P1cuJVHYIthw21OK2BGs-n8pVHKJ4/s1600/iwebadmin1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPDyNWxirp6YlclaCKZLR5efl2u_Y-Oyq4zqIDs9XncsgG1009PIk92e4eKWXaG_ObFXkZHpiNPLuNAxXc5AFrTq_mow5XFjBKMz8qCC33Wq2TN6P1cuJVHYIthw21OK2BGs-n8pVHKJ4/s320/iwebadmin1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUTTTDf__TDyl8g0rZ0JGwnmdmyiPXWXeQt5SNFJgRp2RUG-lbElDJByVMDj34-rw6EPXA78zmEb-ZX9RoZ6_fQbPCh_ezNCsISLInXMndkNf2rCeSAPTiVScLHivA38NkIVA75Zeqivs/s1600/webadmin4.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5464276572997609698&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUTTTDf__TDyl8g0rZ0JGwnmdmyiPXWXeQt5SNFJgRp2RUG-lbElDJByVMDj34-rw6EPXA78zmEb-ZX9RoZ6_fQbPCh_ezNCsISLInXMndkNf2rCeSAPTiVScLHivA38NkIVA75Zeqivs/s320/webadmin4.png&quot; style=&quot;cursor: pointer; height: 200px; width: 320px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiG2V6Q_hYK4wHH9dMylXd2MIHUp4Y9II5Tw0RGfUATHTrr8rYJ3tDVC-IeJ0ZQCImcNtaHqlS3lOXD-iyRD8FXiqwgvAmqwOnQL47Ep8ohT3ETYfXwntPkxWguaGT0ac458YXITv9PyA/s1600/webadmin3.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5464276564823100946&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiG2V6Q_hYK4wHH9dMylXd2MIHUp4Y9II5Tw0RGfUATHTrr8rYJ3tDVC-IeJ0ZQCImcNtaHqlS3lOXD-iyRD8FXiqwgvAmqwOnQL47Ep8ohT3ETYfXwntPkxWguaGT0ac458YXITv9PyA/s320/webadmin3.png&quot; style=&quot;cursor: pointer; height: 200px; width: 320px;&quot; /&gt;&lt;/a&gt;</description><link>http://indimail.blogspot.com/2010/04/web-administration-for-indimail.html</link><author>noreply@blogger.com (cprogrammer)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPDyNWxirp6YlclaCKZLR5efl2u_Y-Oyq4zqIDs9XncsgG1009PIk92e4eKWXaG_ObFXkZHpiNPLuNAxXc5AFrTq_mow5XFjBKMz8qCC33Wq2TN6P1cuJVHYIthw21OK2BGs-n8pVHKJ4/s72-c/iwebadmin1.png" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-269688189640615970.post-7740795690377770806</guid><pubDate>Sat, 24 Apr 2010 13:45:00 +0000</pubDate><atom:updated>2017-12-03T16:41:27.525+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">indimail &quot;post execution handle&quot;</category><title>Post Handle</title><description>


 
 
 
 &lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }&lt;/style&gt;


&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt;
provides a handle post successful operation of few programs. A post
execution handle is a program with the same name as that of the
calling program but in the directory /usr/libexec/indimail. On
successful completion, such programs will execute the handle program
and return the status of the called handle program.&lt;/span&gt;&lt;br /&gt;

&lt;span style=&quot;font-weight: normal;&quot;&gt;In my experience of setting up
mail servers in the corporate world, often it is required that users
be added to external databases which could be part of some strange
enterprise applications. It could be as simple as adding users to
your &lt;a href=&quot;http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol&quot;&gt;ldap&lt;/a&gt;
server when creating a mailbox on IndiMail. Sometimes it could be as
bad as adding users to &lt;a href=&quot;http://en.wikipedia.org/wiki/Active_Directory&quot;&gt;ADS&lt;/a&gt;
(&lt;a href=&quot;http://en.wikipedia.org/wiki/Ugh&quot;&gt;ugh&lt;/a&gt;).&lt;/span&gt;&lt;br /&gt;

&lt;a href=&quot;http://www.indimail.org/&quot;&gt;IndiMail&lt;/a&gt; (release 1.6.9
onwards) provides you a hook, to execute any program after successful
completion of the programs, vadddomain, vaddaliasdomain, vdeldomain,
vadduser and vdeluser, vrenamedomain, vrenameuser, vmovuser, vpasswd.&lt;br /&gt;

A hook can be defined by creating a script or an executable in
/usr/libexec/indimail with the name of the program being executed.
e.g. if you create a script named vadduser in the directory
/usr/libexec/indimail, the script will get executed whenever the
program vadduser is used to add a user to indimail. The execution
happens only if the program completes successfully. Depending on what
you need to do, you can customize the scripts in a &lt;a href=&quot;http://en.wikipedia.org/wiki/Jiffy_%28time%29&quot;&gt;jiffy&lt;/a&gt;.&lt;br /&gt;

The hook script name can be overridden by setting the POST_HANDLE
environment variable.&lt;br /&gt;

See the man pages of vadddomain, vaddaliasdomain, vdeldomain,
vadduser, vmoduser, vmoveuser, vdeluser, vrenamedomain, vrenameuser,
vpasswd.&lt;br /&gt;

for more details.&lt;br /&gt;

Let me know if you create an &lt;a href=&quot;http://ardictionary.com/Interesting/5730&quot;&gt;interesting&lt;/a&gt;
script.&lt;br /&gt;

Example of using a handle is when adding a user, you want
vuserinfo to be run.&lt;br /&gt;

&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 0.2in; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;% cat
/var/indimail/libexec/vadduser&lt;/b&gt;&lt;br /&gt;
exec
/var/indimail/bin/vuserinfo $1&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
If you have the above, then this is what will happen when you add
a user
&lt;br /&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 0.2in; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;% sudo
/var/indimail/bin/vadduser test05@example.com&lt;/b&gt;&lt;br /&gt;
New IndiMail
password for test05@example.com:&lt;br /&gt;
Retype new IndiMail
password:&lt;br /&gt;
name : test05@example.com&lt;br /&gt;
passwd :
$1$awb5a5oV$/3rsmlKSu.wzwIFhBzMf7/ (MD5)&lt;br /&gt;
uid : 1&lt;br /&gt;
gid :
0&lt;br /&gt;
-all services available&lt;br /&gt;
gecos : test05&lt;br /&gt;
dir :
/home/mail/T2Zsym/example.com/test05 (missing)&lt;br /&gt;
quota : 5242880
[5.00 Mb]&lt;br /&gt;
curr quota : 0S,0C&lt;br /&gt;
Mail Store IP : 192.168.1.100
(Clustered - local)&lt;br /&gt;
Mail Store ID : 1000&lt;br /&gt;
Sql Database :
192.168.1.100:indimail:ssh-1.5-&lt;br /&gt;
Table Name : indimail&lt;br /&gt;
Relay
Allowed : NO&lt;br /&gt;
Days inact : 0 days 00 Hrs 00 Mins 00 Secs&lt;br /&gt;
Added
On : ( 127.0.0.1) Sat Apr 24 19:49:06 2010&lt;br /&gt;
last auth : Not yet
logged in&lt;br /&gt;
last IMAP : Not yet logged in&lt;br /&gt;
last POP3 : Not yet
logged in&lt;br /&gt;
PassChange : Not yet Changed&lt;br /&gt;
Inact Date : Not yet
Inactivated&lt;br /&gt;
Activ Date : ( 127.0.0.1) Sat Apr 24 19:49:06
2010&lt;br /&gt;
Delivery Time : No Mails Delivered yet / Per Day Limit not
configured&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

I personally use post execution handle for adding some mandatory
users every time I add a new domain. So this is what my vadddomain
handle looks like&lt;br /&gt;

&lt;div style=&quot;line-height: 100%; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;

&lt;/div&gt;
&lt;div style=&quot;background: #f9f9f9; border: 1px dashed #2f6fab; line-height: 0.2in; margin-bottom: 0in; padding: 0.02in;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;% cat
/var/indimail/libexec/vadddomain&lt;/b&gt;&lt;br /&gt;
/var/indimail/bin/vdominfo
$1&lt;br /&gt;
/var/indimail/bin/valias -i &#39;&amp;amp;register-spam&#39;
register-spam@$1&lt;br /&gt;
/var/indimail/bin/valias -i &#39;&amp;amp;register-ham&#39;
register-ham@$1&lt;br /&gt;
/var/indimail/bin/valias -i &#39;&amp;amp;spam&#39;
spam@$1&lt;br /&gt;
/var/indimail/bin/valias -i &#39;&amp;amp;ham&#39;
ham@$1&lt;br /&gt;
/var/indimail/bin/vadduser -e prefilt@$1
xxxxxxxx&lt;br /&gt;
/var/indimail/bin/vadduser -e postfilt@$1
xxxxxxxx&lt;br /&gt;
/var/indimail/bin/vcfilter -i -t spamFilter -c 3 -k
&quot;Yes, spamicity=&quot; -f Spam -b 0 -h 33 prefilt@$1&lt;br /&gt;
/bin/ls
-dl /var/indimail/domains/$1&lt;br /&gt;
/bin/ls -al
/var/indimail/domains/$1&lt;br /&gt;
exit 0&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;


</description><link>http://indimail.blogspot.com/2010/04/post-handle.html</link><author>noreply@blogger.com (cprogrammer)</author><thr:total>2</thr:total></item></channel></rss>