Go Back   HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials > Linux Forums > HOWTO-Related Questions

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
Reply
 
Thread Tools Display Modes
  #1  
Old 16th July 2008, 01:35
tecstream tecstream is offline
Junior Member
 
Join Date: Jun 2008
Posts: 10
Thanks: 1
Thanked 0 Times in 0 Posts
Default Virtual Users With Postfix, PostfixAdmin, Courier, Mailscanner,Mailwatch CentOS 5.2

I have set up a development server and have it running now with mail flowing in and out the problem I have is a lack of understanding on the auto create of mail folders and Maildir in general. as of now the mail goes into a system users account and I want it to flow to the virtual users folder I created in /home/vmail perfection would be /home/vmail/domainname/username/. I have tried multiple things via these forums to get this to happen to no avail.

Any help would be appreciated and a general explanation with it even better

TIA -----and sorry for such a long post with configs just figured it would save time

Tec

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 3
debug_peer_list = 127.0.0.1
header_checks = regexp:/etc/postfix/header_checks
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_recipient_maps = proxy:unixasswd.byname $alias_maps
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = example.net
myhostname = example.net
mynetworks = $config_directory/mynetworks
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
relay_domains = mysql:/etc/postfix/mysql_relay_domains_maps.cf
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_use_tls = no
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject _non_fqdn_hostname,reject_non_fqdn_sender,reject_n on_fqdn_recipient,reject_unauth_destination,reject _unauth_pipelining,reject_invalid_hostname,reject_ rbl_client opm.blitzed.org,reject_rbl_client list.dsbl.org,reject_rbl_client bl.spamcop.net,reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = smptd
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /usr/local/ssl/example.net.crt
smtpd_tls_key_file = /usr/local/ssl/example.net.key
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/etc/postfix/tls_smtpd_scache
smtpd_use_tls = yes
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_create_maildirsize = yes
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 5000
virtual_transport = maildrop
virtual_uid_maps = static:5000

mysql_relay_domains_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'

mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = 1

mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s'
#optional query to use when relaying for backup MX
#query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1'

mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s'


mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1



Master.cf


#
# ================================================== ========================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ================================================== ========================
smtp inet n - n - - smtpd -v
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticate d,reject
smtps inet n - n - - smtpd -v
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticate d,reject
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - n - - smtp
-o fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
#
# ================================================== ==================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ================================================== ==================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
#
# See the Postfix UUCP_README file for configuration details.
#
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient


maildirmake.sh

#!/bin/bash
MAILDIRMAKE=/usr/lib/courier-imap/bin/maildirmake

set -e
mail_home="/home/vmail"
if [ ! -d $mail_home/$1 ] ; then
mkdir $mail_home/$1
chown -R vmail:vmail $mail_home/$1
chmod -R 700 $mail_home/$1
#echo "$mail_home/$1 CREATED"
fi
if [ -d $mail_home/$1 ] ; then
cd "$mail_home/$1"
maildirmake $2
#echo "$mail_home/$1/$2 CREATED"
maildirmake -q "$3S" $2
#echo "$3S $2 QUOTA CREATED"
chown -R vmail:vmail $mail_home/$1/$2
chmod -R 700 $mail_home/$1/$2
fi


postfixadmin create-mailbox.php


<?php
/**
* Postfix Admin
*
* LICENSE
* This source file is subject to the GPL license that is bundled with
* this package in the file LICENSE.TXT.
*
* Further details on the project are available at :
* http://www.postfixadmin.com or http://postfixadmin.sf.net
*
* @version $Id: create-mailbox.php 250 2007-12-02 13:59:33Z GingerDog $
* @license GNU GPL v2 or later.
*
* File: create-mailbox.php
* Responsible for allowing for the creation of mail boxes
*
* @version $Id: create-mailbox.php 250 2007-12-02 13:59:33Z GingerDog $
* @license GNU GPL v2 or later.
*
* Template Variables:
*
* tMessage
* tUsername
* tName
* tQuota
* tDomain
*
* Form POST \ GET Variables:
*
* fUsername
* fPassword
* fPassword2
* fName
* fQuota
* fDomain
* fActive
* fMail
*/

require_once('common.php');

authentication_require_role('admin');
$SESSID_USERNAME = authentication_get_username();
if(authentication_has_role('global-admin')) {
$list_domains = list_domains ();
}
else {
$list_domains = list_domains_for_admin($SESSID_USERNAME);
}


$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text'];
$pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text'];
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text'];

if ($_SERVER['REQUEST_METHOD'] == "GET")
{
$fDomain = $list_domains[0];
if (isset ($_GET['domain'])) $fDomain = escape_string ($_GET['domain']);

if(!in_array($fDomain, $list_domains)) {
die("Invalid domain name selected, or you tried to select a domain you are not an admin for");
}
$tDomain = $fDomain;
$result = db_query ("SELECT * FROM $table_domain WHERE domain='$fDomain'");
if ($result['rows'] == 1)
{
$row = db_array ($result['result']);
$tQuota = $row['maxquota'];
}
}

if ($_SERVER['REQUEST_METHOD'] == "POST")
{

if (isset ($_POST['fUsername']) && isset ($_POST['fDomain'])) $fUsername = escape_string ($_POST['fUsername']) . "@" . escape_string ($_POST['fDomain']);
$fUsername = strtolower ($fUsername);
if (isset ($_POST['fPassword'])) $fPassword = escape_string ($_POST['fPassword']);
if (isset ($_POST['fPassword2'])) $fPassword2 = escape_string ($_POST['fPassword2']);
isset ($_POST['fName']) ? $fName = escape_string ($_POST['fName']) : $fName = "";
if (isset ($_POST['fDomain'])) $fDomain = escape_string ($_POST['fDomain']);
isset ($_POST['fQuota']) ? $fQuota = intval($_POST['fQuota']) : $fQuota = 0;
isset ($_POST['fActive']) ? $fActive = escape_string ($_POST['fActive']) : $fActive = "1";
if (isset ($_POST['fMail'])) $fMail = escape_string ($_POST['fMail']);


if ( (!check_owner ($SESSID_USERNAME, $fDomain)) && (!authentication_has_role('global-admin')) )
{
$error = 1;
$tUsername = escape_string ($_POST['fUsername']);
$tName = $fName;
$tQuota = $fQuota;
$tDomain = $fDomain;
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1'];
}

if (!check_mailbox ($fDomain))
{
$error = 1;
$tUsername = escape_string ($_POST['fUsername']);
$tName = $fName;
$tQuota = $fQuota;
$tDomain = $fDomain;
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error3'];
}

if (empty ($fUsername) or !check_email ($fUsername))
{
$error = 1;
$tUsername = escape_string ($_POST['fUsername']);
$tName = $fName;
$tQuota = $fQuota;
$tDomain = $fDomain;
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1'];
}

if (empty ($fPassword) or empty ($fPassword2) or ($fPassword != $fPassword2))
{
if (empty ($fPassword) and empty ($fPassword2) and $CONF['generate_password'] == "YES")
{
$fPassword = generate_password ();
}
else
{
$error = 1;
$tUsername = escape_string ($_POST['fUsername']);
$tName = $fName;
$tQuota = $fQuota;
$tDomain = $fDomain;
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text_error'];
}
}

if ($CONF['quota'] == "YES")
{
if (!check_quota ($fQuota, $fDomain))
{
$error = 1;
$tUsername = escape_string ($_POST['fUsername']);
$tName = $fName;
$tQuota = $fQuota;
$tDomain = $fDomain;
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text_error'];
}
}

$result = db_query ("SELECT * FROM $table_alias WHERE address='$fUsername'");
if ($result['rows'] == 1)
{
$error = 1;
$tUsername = escape_string ($_POST['fUsername']);
$tName = $fName;
$tQuota = $fQuota;
$tDomain = $fDomain;
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error2'];
}

if ($error != 1)
{
$password = pacrypt ($fPassword);

if ($CONF['domain_path'] == "YES")
{
if ($CONF['domain_in_mailbox'] == "YES")
{
$maildir = $fDomain . "/" . $fUsername . "/";
}
else
{
$maildir = $fDomain . "/" . escape_string (strtolower($_POST['fUsername'])) . "/";
}
}
else
{
$maildir = $fUsername . "/";
}

if (!empty ($fQuota))
{
$quota = multiply_quota ($fQuota);
}
else
{
$quota = 0;
}

if ($fActive == "on")
{
$sqlActive = db_get_boolean(True);
}
else
{
$sqlActive = db_get_boolean(False);
}
if ('pgsql'==$CONF['database_type'])
{
db_query('BEGIN');
}

$result = db_query ("INSERT INTO $table_alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','$fUsername','$fDomain',NOW(),NOW(), '$sqlActive')");
if ($result['rows'] != 1)
{
$tDomain = $fDomain;
$tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />";
}

/*
# TODO: The following code segment is from admin/create-mailbox.php. To be compared/merged with the code from /create-mailbox.php.
Lines starting with /* were inserted to keep this section in commented mode.


if ($result['rows'] != 1)
{
$tDomain = $fDomain;
$tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />";
}
else
{

$error=TRUE; // Being pessimistic
if (mailbox_postcreation($fUsername,$fDomain,$maildir ))
{
if ('pgsql'==$CONF['database_type'])
{
$result=db_query("COMMIT");

/* should really not be possible: */
/*
if (!$result) die('COMMIT-query failed.');
}
$error=FALSE;
} else {
$tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />";
if ('pgsql'==$CONF['database_type'])
{
$result=db_query("ROLLBACK");

/* should really not be possible: */
/*
if (!$result) die('ROLLBACK-query failed.');
} else {
/*
When we cannot count on transactions, we need to move forward, despite
the problems.
*/
/*
$error=FALSE;
}
}


if (!$error)
{
db_log ($CONF['admin_email'], $fDomain, 'create_mailbox', $fUsername);

*/

/*
TODO: this is the start of /create-mailbox code segment that was originally used in /create-mailbox.php instead
of the above from admin/create-mailbox.php.
To be compared / merged.
*/

$result = db_query ("INSERT INTO $table_mailbox (username,password,name,maildir,quota,domain,creat ed,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$qu ota','$fDomain',NOW(),NOW(),'$sqlActive')");
if ($result['rows'] != 1 || !mailbox_postcreation($fUsername,$fDomain,$maildir ))
{
$tDomain = $fDomain;
$tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />";
db_query('ROLLBACK');
}
else
{
db_query('COMMIT');
db_log ($SESSID_USERNAME, $fDomain, 'create_mailbox', "$fUsername");




/*
TODO: this is the end of /create-mailbox.php code segment
*/
$tDomain = $fDomain;

if (create_mailbox_subfolders($fUsername,$fPassword))
{
$tMessage = $PALANG['pCreate_mailbox_result_success'] . "<br />($fUsername";
} else {
$tMessage = $PALANG['pCreate_mailbox_result_succes_nosubfolders'] . "<br />($fUsername";
}

if ($CONF['generate_password'] == "YES")
{
$tMessage .= " / $fPassword)</br />";
}
else
{
if ($CONF['show_password'] == "YES")
{
$tMessage .= " / $fPassword)</br />";
}
else
{
$tMessage .= ")</br />";
}
}

$tQuota = $CONF['maxquota'];

if ($fMail == "on")
{
$fTo = $fUsername;
$fFrom = $SESSID_USERNAME;
$fHeaders = "To: " . $fTo . "\n";
$fHeaders .= "From: " . $fFrom . "\n";

$fHeaders .= "Subject: " . encode_header ($PALANG['pSendmail_subject_text']) . "\n";
$fHeaders .= "MIME-Version: 1.0\n";
$fHeaders .= "Content-Type: text/plain; charset=utf-8\n";
$fHeaders .= "Content-Transfer-Encoding: 8bit\n";

$fHeaders .= $CONF['welcome_text'];

if (!smtp_mail ($fTo, $fFrom, $fHeaders))
{
$tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />";
}
else
{
$tMessage .= "<br />" . $PALANG['pSendmail_result_success'] . "<br />";
}
}
}
}
}

include ("templates/header.php");
include ("templates/menu.php");
include ("templates/create-mailbox.php");
include ("templates/footer.php");

system("sudo /usr/sbin/maildirmake.sh ".$fDomain." ".$fUsername. " ". $quota);
db_log ($SESSID_USERNAME, $fDomain, "$fUsername");

/* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */


?>
Reply With Quote
Sponsored Links
  #2  
Old 16th July 2008, 17:44
falko falko is online now
Super Moderator
 
Join Date: Apr 2005
Location: Lneburg, Germany
Posts: 41,711
Thanks: 1,900
Thanked 2,702 Times in 2,545 Posts
Default

Quote:
Originally Posted by tecstream View Post
as of now the mail goes into a system users account and I want it to flow to the virtual users folder
You must remove that domain from the mydestination parameter in your main.cf, and the left part of the email address (before @) must not exist as a system user.
__________________
Falko
--
Download the ISPConfig 3 Manual! | Check out the ISPConfig 3 Billing Module!

FB: http://www.facebook.com/howtoforge

nginx-Webhosting: Timme Hosting | Follow me on:
Reply With Quote
  #3  
Old 16th July 2008, 19:51
tecstream tecstream is offline
Junior Member
 
Join Date: Jun 2008
Posts: 10
Thanks: 1
Thanked 0 Times in 0 Posts
Default

Falco,

Thanks for the assistance!!

I had not noticed that the $myhostname was an issue. I also was not aware that one could not have a system account. Even so I do not get a creation of a Maildir automatically. Instead it created a vmail folder in my /home/vmail not what I expected.

Tec


maillog attempt new account


Jul 16 13:40:37 demo authdaemond: received userid lookup request: mark.mac@example.net
Jul 16 13:40:37 demo authdaemond: authmysql: trying this module
Jul 16 13:40:37 demo authdaemond: authmysqllib: connected. Versions: header 50045, client 50045, server 50045
Jul 16 13:40:37 demo authdaemond: SQL query: SELECT username, password, "", 5000, 5000, "/home/vmail", CONCAT("/home/vmail/",maildir) , concat(quota,'S'), name, "" FROM mailbox WHERE username = 'mark.mac@example.net'
Jul 16 13:40:37 demo authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmail, address=mark.mac@example.net, fullname=MarkMac, maildir=/home/vmail/example.net/mark.mac@example.net/, quota=0S, options=<null>
Jul 16 13:40:37 demo authdaemond: Authenticated: clearpasswd=<null>, passwd=$1$954a669d$zcDxyF.55ZLtPu9rJHLU1/
Jul 16 13:40:37 demo maildrop[5059]: Unable to open mailbox.
Jul 16 13:40:37 demo postfix/pipe[5058]: 436AEA0259: to=<mark.mac@demo.snakehill.net>, relay=maildrop, delay=3370, delays=3367/1.3/0/1.3, dsn=4.3.0, status=deferred (temporary failure. Command output: /usr/bin/maildrop: Unable to open mailbox. )
Reply With Quote
  #4  
Old 16th July 2008, 22:10
tecstream tecstream is offline
Junior Member
 
Join Date: Jun 2008
Posts: 10
Thanks: 1
Thanked 0 Times in 0 Posts
Default

I found that the creation of the vmail folder was related to an incorrect maildroprc file. (listed below) I have fixed that file but still I do not get an auto created mail directory. Also even if I create the file via maildirmake I still get the unable to open the mailbox error (also shown below)

vmail is the owner and group and files permissions are 0700

maildroprc old file

#Global maildrop filter file
#DEFAULT="$HOME/.maildir/"

#
# Define variables
#
SHELL="/bin/bash"
EXTENSION="$1"
RECIPIENT=tolower("$2")
HOME="/home/vmail"
USER="$3"
HOST="$4"
SENDER="$5"
DEFAULT="$HOME/vmail/$HOST/$USER"
MAILDIR="$HOME/vmail/$HOST/$USER"

logfile "/var/log/maildroprc.log"
log "Markers: ---------------------------------------------"
log " (**) from config file, (II) informational, (WW) warning"
log "--------------------------------------------------------"
log ""


################################################## ####################
#
# Adding missing headers for PGP/MIME
#

BPM="-----BEGIN PGP MESSAGE-----"
EPM="-----END PGP MESSAGE-----"
BPS="-----BEGIN PGP SIGNATURE-----"
EPS="-----END PGP SIGNATURE-----"

if (!/^Content-Type: message/ && !/^Content-Type: multipart/ \
&& !/^Content-Type: application\/pgp/)
{
if (/^$BPM/:b && /^$EPM/:b)
xfilter "reformail -A 'Content-Type: application/pgp; format=text; \
x-action=encrypt'"

if (/^$BPS/:b && /^$EPS/:b)
xfilter "reformail -A 'Content-Type: application/pgp; format=text; \
x-action=sign'"
}


################################################## ###################
#
# Correcting wrong signature dashes
#

if (/^--($|[ ]{2,}^)/:b)
{
xfilter "sed -r 's/^--($|[ ]{2,}^)/-- /'"
log "(II) Sig Dashes corrected"
}

# Include any rules set up for the user - this gives the
# administrator a way to override the domain's mailfilter file
#
# this is also the "suggested" way to set individual values
# for maildrop such as quota. (why do you need quota on your own PC?)
#
`test -e $HOME/vmail/$HOST`
if ( $RETURNCODE != 0 )
{
`/bin/mkdir $HOME/vmail/$HOST`
`/bin/chown vmail.vmail $HOME/vmail/$HOST`
`/bin/chmod 0700 $HOME/$HOST`
}

`test -e $HOME/vmail/$HOST/$USER`
if ( $RETURNCODE != 0 )
{
`/usr/bin/maildirmake $HOME/vmail/$HOST/$USER`
`/bin/chown -R vmail.vmail $HOME/vmail/$HOST`
`/bin/chmod -R 0700 $HOME/vmail/$HOST`
}

`test -r $HOME/vmail/mailfilters/$HOST`
if( $RETURNCODE == 0 )
{
log "(==) Including $HOME/mailfilters/$HOST"
include $HOME/mailfilters/$HOST
}

maildroprc new file


#Global maildrop filter file
#DEFAULT="$HOME/.maildir/"

#
# Define variables
#
SHELL="/bin/bash"
EXTENSION="$1"
RECIPIENT=tolower("$2")
HOME="/home/vmail"
USER="$3"
HOST="$4"
SENDER="$5"
DEFAULT="$HOME/$HOST/$USER"
MAILDIR="$HOME/$HOST/$USER"

logfile "/var/log/maildroprc.log"
VERBOSE="9"
log "Markers: ---------------------------------------------"
log " (**) from config file, (II) informational, (WW) warning"
log "--------------------------------------------------------"
log ""


################################################## ####################
#
# Adding missing headers for PGP/MIME
#

BPM="-----BEGIN PGP MESSAGE-----"
EPM="-----END PGP MESSAGE-----"
BPS="-----BEGIN PGP SIGNATURE-----"
EPS="-----END PGP SIGNATURE-----"

if (!/^Content-Type: message/ && !/^Content-Type: multipart/ \
&& !/^Content-Type: application\/pgp/)
{
if (/^$BPM/:b && /^$EPM/:b)
xfilter "reformail -A 'Content-Type: application/pgp; format=text; \
x-action=encrypt'"

if (/^$BPS/:b && /^$EPS/:b)
xfilter "reformail -A 'Content-Type: application/pgp; format=text; \
x-action=sign'"
}


################################################## ###################
#
# Correcting wrong signature dashes
#

if (/^--($|[ ]{2,}^)/:b)
{
xfilter "sed -r 's/^--($|[ ]{2,}^)/-- /'"
log "(II) Sig Dashes corrected"
}

# Include any rules set up for the user - this gives the
# administrator a way to override the domain's mailfilter file
#
# this is also the "suggested" way to set individual values
# for maildrop such as quota. (why do you need quota on your own PC?)
#
`test -e $HOME/$HOST`
if ( $RETURNCODE != 0 )
{
`/bin/mkdir $HOME/$HOST`
`/bin/chown vmail.vmail $HOME/$HOST`
`/bin/chmod 0700 $HOME/$HOST`
}

`test -e $HOME/$HOST/$USER`
if ( $RETURNCODE != 0 )
{
`/usr/bin/maildirmake $HOME/$HOST/$USER`
`/bin/chown -R vmail.vmail $HOME/$HOST`
`/bin/chmod -R 0700 $HOME/$HOST`
}

`test -r $HOME/mailfilters/$HOST`
if( $RETURNCODE == 0 )
{
log "(==) Including $HOME/mailfilters/$HOST"
include $HOME/mailfilters/$HOST
}



maillog

Jul 16 16:05:05 demo authdaemond: Authenticated: clearpasswd=<null>, passwd=$1$954a669d$zcDxyF.55ZLtPu9rJHLU1/
Jul 16 16:05:05 demo maildrop[7982]: Unable to open mailbox.
Jul 16 16:05:05 demo postfix/pipe[7981]: 436AEA0259: to=<mark.mac@example.com>, relay=maildrop, delay=12038, delays=12038/0.05/0/0.07, dsn=4.3.0, status=deferred (temporary failure. Command output: /usr/bin/maildrop: Unable to open mailbox. )
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Virtual Users And Domains With Postfix, Courier And MySQL (CentOS 5.1) dchristiaan HOWTO-Related Questions 1 11th July 2008 13:23
Virtual Users With Postfix, PostfixAdmin, Courier, Mailscanner, ClamAV On CentOS fchevitarese HOWTO-Related Questions 5 4th September 2007 12:58
Virtual Users With Postfix, PostfixAdmin, Courier, Mailscanner, ClamAV On CentOS monster HOWTO-Related Questions 5 21st May 2007 12:40
Junk mail and spamassassin... sthompson Installation/Configuration 4 27th December 2006 16:11
Verify email setup meekish Installation/Configuration 28 27th October 2006 15:36


All times are GMT +2. The time now is 22:48.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.