Mail Installation instructions for UNIX
Replacing procmail as default handler in sendmail configurations
- Copy virt_mail to /usr/bin/virt_mail
- Copy odbc_mail.default.ini to /etc/odbc_mail.ini
- IMPORTANT: Make sure /etc/odbc_mail.ini is NOT GROUP/WORLD writable.
virt_mail will fail to run if it is.
- Edit /etc/odbc_mail.ini and change the login settings to match your current database installation.
- If you don't have or want to use procmail, comment out the "Fallback" setting in the [Deliver] section.
- Edit /etc/sendmail.cf.
-- Change
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40,
T=DNS/RFC822/X-Unix,
A=procmail -Y -a $h -d $u
-- into:
Mlocal, P=/usr/bin/virt_mail, F=lsDFMA5:/|@qSPhn9, S=10/30, R=20/40,
T=DNS/RFC822/X-Unix,
A=virt_mail -c /etc/odbc_mail.ini -l $u -h $h -s $g
- NOTE: The changes to the F= setting involve removing both the 'w' and 'f' flags.
- The removal of the 'w' flag affects lookups in /etc/passwd, which are no longer required if all mail drops go into the database.
- The default ini file is set up to maildrop to procmail, which will perform this check correctly.
per-user database maildrops under sendmail
- Copy odbc_mail.default.ini to ~the user_name/.odbc_mail.ini
- IMPORTANT: Make sure the .odbc_mail.ini is NOT GROUP/WORLD writable.
virt_mail will fail to run if it is.
- Put at the end of ~the user_name/.procmailrc something like the below code for replacing the_user_name with the user you're setting up.
:0:
| /usr/bin/virt_mail -c .odbc_mail.ini -l the_user_name -h your.domain.com
- Note: the '-l ..' parameter is used to relate the local recipient to the database user for which the maildrop is done.
See the remarks in the odbc_mail.default.ini file.
- Adjust the parameters in .odbc_mail.ini to match your configuration
- Disable Fallback delivery in .odbc_mail.ini
- Comment out the "Fallback =" entry in the .odbc_mail.ini or set it to something that doesn't involve procmail.
Otherwise, this could lead to drop loops.
per-user database maildrops under qmail
- Copy odbc_mail.default.ini to ~the user_name/.odbc_mail.ini
- IMPORTANT: Make sure the .odbc_mail.ini is NOT GROUP/WORLD writable.
virt_mail will fail to run if it is.
- If you're setting up a .qmail, simply do something like:
| /usr/bin/virt_mail -m qmail -c .odbc_mail.ini
- If you're setting up .qmail-default or .qmail-<some alias_name>, make sure you adjust the RemovePrefix? accordingly in the odbc_mail.ini.
- This also works if a single user is receiving mail for an entire (virtual) domain.
- If you want to configure qmail so that user 'db' gets all mail for example.com, do this:
- create a new user db in /etc/passwd etc.
- remove example.com from /var/qmail/control/locals
- add to /var/qmail/controls/virtualdomains:
example.com:db
- adjust /var/qmail/users/assign accordingly:
=db:db:<uid>:<gid>:<home>:::
+db-:db:<uid>:<gid>:<home>:-::
- Or run:
qmail-pw2u < /etc/passwd > /var/qmail/users/assign
- And finally run qmail-newu and restart qmail
- In ~db/.qmail-default, put:
| /usr/bin/virt_mail -m qmail -c .odbc_mail.ini
- In .odbc_mail.ini, set
RemovePrefix=db-
- As result now, mail to <none> will be delivered to the qmail alias <none> and is stored into the database for user 'info'.
- Adjust the parameters in .odbc_mail.ini to match your configuration
per-user database maildrops under courier
- Copy odbc_mail.default.ini to ~the user_name/.odbc_mail.ini
- IMPORTANT: Make sure the .odbc_mail.ini is NOT GROUP/WORLD writable.
virt_mail will fail to run if it is.
- If you're setting up a .courier, simply do something like
| /usr/bin/virt_mail -mcourier -c .odbc_mail.ini
- Adjust the parameters in .odbc_mail.ini to match your configuration
EXIM
Here are a code snippets for Exim that perform maildrops into the odbc database.
## IN TRANSPORT SECTION
# Delivers into the database
odbc:
driver = pipe
command = /usr/bin/virt_mail \
-c /etc/odbc_mail.ini \
-s "${if def:return_path{$return_path}{MAILER-DAEMON}}" \
-l "$local_part" -h "$domain"
user = USERNAME
return_path_add
delivery_date_add
prefix =
suffix =
temp_errors = 73 : 74 : 75
return_fail_output
- Note: Make sure the USERNAME in the 'user = USERNAME' setting matches the owner of /etc/odbc_mail.ini, because this file must have mode 0600.
Consider creating a new user account for this delivery only.
You should specify 'user = root' here only if Fallback delivery is configured in /etc/odbc_mail.ini (for procmail fallback delivery for instance)
## IN DIRECTORS SECTION
# Attempts delivery of all mail into the database
to_db:
driver = smartuser
transport = odbc
require_files = /etc/odbc_mail.ini
#
# uncomment line below to deliver all mail to db-XXX into the database, for any
# value of XXX. For this to work, set "RemovePrefix = db-" in
# the [Translate] section in /etc/odbc_mail.ini
#prefix = db-
Related
CategoryMail CategoryODS CategoryOpenSource CategoryHowTo CategoryOdsMail