Почтовый сервер в связке Postfix, Dovecot — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
Строка 153: Строка 153:
  
  
Правим конфиг файл
+
Правим основной конфиг postfixadmin <code>config.inc.php</code>
 +
<spoiler>
 +
<?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://postfixadmin.sf.net
 +
*
 +
* @version $Id: config.inc.php 1694 2014-10-07 16:11:49Z christian_boltz $
 +
* @license GNU GPL v2 or later.
 +
*
 +
* File: config.inc.php
 +
* Contains configuration options.
 +
*/
  
 +
/*****************************************************************
 +
*  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
* You have to set $CONF['configured'] = true; before the
 +
* application will run!
 +
* Doing this implies you have changed this file as required.
 +
* i.e. configuring database etc; specifying setup.php password etc.
 +
*/
 +
$CONF['configured'] = true;
  
 +
// In order to setup Postfixadmin, you MUST specify a hashed password here.
 +
// To create the hash, visit setup.php in a browser and type a password into the field,
 +
// on submission it will be echoed out to you as a hashed value.
 +
$CONF['setup_password'] = 'ad33d6e7b55b7709b3987d83efd7c300:a11934abc5fbe70e1d61e711f1ba2dc7b77f0b47';
  
 +
// Language config
 +
// Language files are located in './languages', change as required..
 +
$CONF['default_language'] = 'ru';
  
 +
// Hook to override or add translations in $PALANG
 +
// Set to the function name you want to use as hook function (see language_hook example function below)
 +
$CONF['language_hook'] = '';
  
 +
/*
 +
    language_hook example function
 +
 +
    Called if $CONF['language_hook'] == '<name_of_the_function>'
 +
    Allows to add or override $PALANG interface texts.
  
 +
    If you add new texts, please always prefix them with 'x_' (for example
 +
    $PALANG['x_mytext'] = 'foo') to avoid they clash with texts that might be
 +
    added to languages/*.lang in future versions of PostfixAdmin.
  
 +
    Please also make sure that all your added texts are included in all
 +
    sections - that includes all 'case "XY":' sections and the 'default:'
 +
    section (for users that don't have any of the languages specified
 +
    in the 'case "XY":' section).
 +
    Usually the 'default:' section should contain english text.
 +
 +
    If you modify an existing text/translation, please consider to report it
 +
    to the bugtracker on http://sf.net/projects/postfixadmin so that all users
 +
    can benefit from the corrected text/translation.
 +
 +
    Returns: modified $PALANG array
 +
*/
 +
/*
 +
function language_hook($PALANG, $language) {
 +
    switch ($language) {
 +
        case "de":
 +
            $PALANG['x_whatever'] = 'foo';
 +
            break;
 +
        case "fr":
 +
            $PALANG['x_whatever'] = 'bar';
 +
            break;
 +
        default:
 +
            $PALANG['x_whatever'] = 'foobar';
 +
    }
 +
 +
    return $PALANG;
 +
}
 +
*/
 +
 +
// Database Config
 +
// mysql = MySQL 3.23 and 4.0, 4.1 or 5
 +
// mysqli = MySQL 4.1+
 +
// pgsql = PostgreSQL
 +
$CONF['database_type'] = 'mysqli';
 +
$CONF['database_host'] = '127.0.0.1';
 +
$CONF['database_user'] = 'postfix';
 +
$CONF['database_password'] = 'q';
 +
$CONF['database_name'] = 'postfix';
 +
// If you need to specify a different port for a MYSQL database connection, use e.g.
 +
//  $CONF['database_host'] = '172.30.33.66:3308';
 +
// If you need to specify a different port for POSTGRESQL database connection
 +
//  uncomment and change the following
 +
// $CONF['database_port'] = '5432';
 +
 +
// Here, if you need, you can customize table names.
 +
$CONF['database_prefix'] = '';
 +
$CONF['database_tables'] = array (
 +
    'admin' => 'admin',
 +
    'alias' => 'alias',
 +
    'alias_domain' => 'alias_domain',
 +
    'config' => 'config',
 +
    'domain' => 'domain',
 +
    'domain_admins' => 'domain_admins',
 +
    'fetchmail' => 'fetchmail',
 +
    'log' => 'log',
 +
    'mailbox' => 'mailbox',
 +
    'vacation' => 'vacation',
 +
    'vacation_notification' => 'vacation_notification',
 +
    'quota' => 'quota',
 +
    'quota2' => 'quota2',
 +
);
 +
 +
// Site Admin
 +
// Define the Site Admin's email address below.
 +
// This will be used to send emails from to create mailboxes and
 +
// from Send Email / Broadcast message pages.
 +
// Leave blank to send email from the logged-in Admin's Email address.
 +
$CONF['admin_email'] = 'postmaster@megapuper.ru';
 +
 +
// Mail Server
 +
// Hostname (FQDN) of your mail server.
 +
// This is used to send email to Postfix in order to create mailboxes.
 +
$CONF['smtp_server'] = '127.0.0.1';
 +
$CONF['smtp_port'] = '25';
 +
 +
// Encrypt
 +
// In what way do you want the passwords to be crypted?
 +
// md5crypt = internal postfix admin md5
 +
// md5 = md5 sum of the password
 +
// system = whatever you have set as your PHP system default
 +
// cleartext = clear text passwords (ouch!)
 +
// mysql_encrypt = useful for PAM integration
 +
// authlib = support for courier-authlib style passwords
 +
// dovecot:CRYPT-METHOD = use dovecotpw -s 'CRYPT-METHOD'. Example: dovecot:CRAM-MD5
 +
//  (WARNING: don't use dovecot:* methods that include the username in the hash - you won't be able to login to PostfixAdmin in this case)
 +
$CONF['encrypt'] = 'cleartext';
 +
 +
// In what flavor should courier-authlib style passwords be encrypted?
 +
// md5 = {md5} + base64 encoded md5 hash
 +
// md5raw = {md5raw} + plain encoded md5 hash
 +
// SHA = {SHA} + base64-encoded sha1 hash
 +
// crypt = {crypt} + Standard UNIX DES-encrypted with 2-character salt
 +
$CONF['authlib_default_flavor'] = 'md5raw';
 +
 +
// If you use the dovecot encryption method: where is the dovecotpw binary located?
 +
// for dovecot 1.x
 +
// $CONF['dovecotpw'] = "/usr/sbin/dovecotpw";
 +
// for dovecot 2.x (dovecot 2.0.0 - 2.0.7 is not supported!)
 +
//$CONF['dovecotpw'] = "/usr/sbin/doveadm pw";
 +
 +
// Password validation
 +
// New/changed passwords will be validated using all regular expressions in the array.
 +
// If a password doesn't match one of the regular expressions, the corresponding
 +
// about the regular expression syntax.
 +
// If you need custom error messages, you can add them using $CONF['language_hook'].
 +
// If a $PALANG text contains a %s, you can add its value after the $PALANG key
 +
// (separated with a space).
 +
$CONF['password_validation'] = array(
 +
#    '/regular expression/' => '$PALANG key (optional: + parameter)',
 +
    '/.{5}/'                => 'password_too_short 5',      # minimum length 5 characters
 +
    '/([a-zA-Z].*){3}/'    => 'password_no_characters 3',  # must contain at least 3 characters
 +
    '/([0-9].*){2}/'        => 'password_no_digits 2',      # must contain at least 2 digits
 +
);
 +
 +
// Generate Password
 +
// Generate a random password for a mailbox or admin and display it.
 +
// If you want to automagically generate passwords set this to 'YES'.
 +
$CONF['generate_password'] = 'NO';
 +
 +
// Show Password
 +
// Always show password after adding a mailbox or admin.
 +
// If you want to always see what password was set set this to 'YES'.
 +
$CONF['show_password'] = 'NO';
 +
 +
// Page Size
 +
// Set the number of entries that you would like to see
 +
// in one page.
 +
$CONF['page_size'] = '20';
 +
 +
// Default Aliases
 +
// The default aliases that need to be created for all domains.
 +
// You can specify the target address in two ways:
 +
// a) a full mail address
 +
// b) only a localpart ('postmaster' => 'admin') - the alias target will point to the same domain
 +
//$CONF['default_aliases'] = array (
 +
//    'abuse' => 'abuse@change-this-to-your.domain.tld',
 +
//    'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
 +
//    'postmaster' => 'postmaster@change-this-to-your.domain.tld',
 +
//    'webmaster' => 'webmaster@change-this-to-your.domain.tld'
 +
//);
 +
 +
// Mailboxes
 +
// If you want to store the mailboxes per domain set this to 'YES'.
 +
// Examples:
 +
//  YES: /usr/local/virtual/domain.tld/username@domain.tld
 +
//  NO:  /usr/local/virtual/username@domain.tld
 +
$CONF['domain_path'] = 'YES';
 +
// If you don't want to have the domain in your mailbox set this to 'NO'.
 +
// Examples:
 +
//  YES: /usr/local/virtual/domain.tld/username@domain.tld
 +
//  NO:  /usr/local/virtual/domain.tld/username
 +
// Note: If $CONF['domain_path'] is set to NO, this setting will be forced to YES.
 +
$CONF['domain_in_mailbox'] = 'NO';
 +
// If you want to define your own function to generate a maildir path set this to the name of the function.
 +
// Notes:
 +
//  - this configuration directive will override both domain_path and domain_in_mailbox
 +
//  - the maildir_name_hook() function example is present below, commented out
 +
//  - if the function does not exist the program will default to the above domain_path and domain_in_mailbox settings
 +
$CONF['maildir_name_hook'] = 'NO';
 +
 +
/*
 +
    maildir_name_hook example function
 +
 +
    Called when creating a mailbox if $CONF['maildir_name_hook'] == '<name_of_the_function>'
 +
    - allows for customized maildir paths determined by a custom function
 +
    - the example below will prepend a single-character directory to the
 +
      beginning of the maildir, splitting domains more or less evenly over
 +
      36 directories for improved filesystem performance with large numbers
 +
      of domains.
 +
 +
    Returns: maildir path
 +
    ie. I/example.com/user/
 +
*/
 +
/*
 +
function maildir_name_hook($domain, $user) {
 +
    $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 +
 +
    $dir_index = hexdec(substr(md5($domain), 28)) % strlen($chars);
 +
    $dir = substr($chars, $dir_index, 1);
 +
    return sprintf("%s/%s/%s/", $dir, $domain, $user);
 +
}
 +
*/
 +
 +
/* 
 +
    *_struct_hook - change, add or remove fields
 +
 +
    If you need additional fields or want to change or remove existing fields,
 +
    you can write a hook function to modify $struct in the *Handler classes.
 +
 +
    The edit form will automatically be updated according to the modified
 +
    $struct. The list page is not yet updated automatically.
 +
 +
    You can define one hook function per class, named like the primary database
 +
    table of that class.
 +
    The hook function is called with $struct as parameter and must return the
 +
    modified $struct.
 +
 +
    Note: Adding a field to $struct adds the handling of this field in
 +
    PostfixAdmin, but it does not create it in the database. You have to do
 +
    that yourself.
 +
    Please follow the naming policy for custom database fields and tables on
 +
    http://sourceforge.net/apps/mediawiki/postfixadmin/index.php?title=Custom_fields
 +
    to avoid clashes with future versions of PostfixAdmin.
 +
 +
    See initStruct() in the *Handler class for the default $struct.
 +
    See pacol() in functions.inc.php for the available flags on each column.
 +
   
 +
    Example:
 +
 +
    function x_struct_admin_modify($struct) {
 +
        $struct['superadmin']['editable'] = 0;          # make the 'superadmin' flag read-only
 +
        $struct['superadmin']['display_in_form'] = 0;  # don't display the 'superadmin' flag in edit form
 +
        $struct['x_newfield'] = pacol( [...] );        # additional field 'x_newfield'
 +
        return $struct; # important!
 +
    }
 +
    $CONF['admin_struct_hook'] = 'x_struct_admin_modify';
 +
*/
 +
$CONF['admin_struct_hook']          = '';
 +
$CONF['domain_struct_hook']        = '';
 +
$CONF['alias_struct_hook']          = '';
 +
$CONF['mailbox_struct_hook']        = '';
 +
$CONF['alias_domain_struct_hook']  = '';
 +
 +
 +
// Default Domain Values
 +
// Specify your default values below. Quota in MB.
 +
$CONF['aliases'] = '0';
 +
$CONF['mailboxes'] = '0';
 +
$CONF['maxquota'] = '1024';
 +
$CONF['domain_quota_default'] = '2048';
 +
 +
// Quota
 +
// When you want to enforce quota for your mailbox users set this to 'YES'.
 +
$CONF['quota'] = 'YES';
 +
// If you want to enforce domain-level quotas set this to 'YES'.
 +
$CONF['domain_quota'] = 'YES';
 +
// You can either use '1024000' or '1048576'
 +
$CONF['quota_multiplier'] = '1048576';
 +
 +
// Transport
 +
// If you want to define additional transport options for a domain set this to 'YES'.
 +
// Read the transport file of the Postfix documentation.
 +
$CONF['transport'] = 'YES';
 +
// Transport options
 +
// If you want to define additional transport options put them in array below.
 +
$CONF['transport_options'] = array (
 +
    'virtual',  // for virtual accounts
 +
    'local',    // for system accounts
 +
    'relay'    // for backup mx
 +
);
 +
// Transport default
 +
// You should define default transport. It must be in array above.
 +
$CONF['transport_default'] = 'virtual';
 +
 +
 +
//
 +
//
 +
// Virtual Vacation Stuff
 +
//
 +
//
 +
 +
// If you want to use virtual vacation for you mailbox users set this to 'YES'.
 +
// NOTE: Make sure that you install the vacation module. (See VIRTUAL-VACATION/)
 +
$CONF['vacation'] = 'NO';
 +
 +
// This is the autoreply domain that you will need to set in your Postfix
 +
// transport maps to handle virtual vacations. It does not need to be a
 +
// real domain (i.e. you don't need to setup DNS for it).
 +
// This domain must exclusively be used for vacation. Do NOT use it for "normal" mail addresses.
 +
$CONF['vacation_domain'] = '';
 +
 +
// Vacation Control
 +
// If you want users to take control of vacation set this to 'YES'.
 +
$CONF['vacation_control'] ='NO';
 +
 +
// Vacation Control for admins
 +
// Set to 'YES' if your domain admins should be able to edit user vacation.
 +
$CONF['vacation_control_admin'] = 'YES';
 +
 +
// ReplyType options
 +
// If you want to define additional reply options put them in array below.
 +
// The array has the format  seconds between replies => $PALANG text
 +
// Special values for seconds are:
 +
// 0 => only reply to the first mail while on vacation
 +
// 1 => reply on every mail
 +
$CONF['vacation_choice_of_reply'] = array (
 +
  0 => 'reply_once',        // Sends only Once the message during Out of Office
 +
  # considered annoying - only send a reply on every mail if you really need it
 +
  # 1 => 'reply_every_mail',      // Reply on every email
 +
  60*60 *24*7 => 'reply_once_per_week'        // Reply if last autoreply was at least a week ago
 +
);
 +
 +
//
 +
// End Vacation Stuff.
 +
//
 +
 +
// Users Control for Domain Admin
 +
// Set to "Yes" if your domain admins schould be able to  edit  field userscontrole in  table domain
 +
// Userscontrol is edited in admin_create-domain.tpl and admin_edit-domain.tpl
 +
// Userscontrol is default set  to  on when creating a domain
 +
$CONF['users_domain_controle'] = 'YES';
 +
 +
 +
// Alias Control
 +
// Postfix Admin inserts an alias in the alias table for every mailbox it creates.
 +
// The reason for this is that when you want catch-all and normal mailboxes
 +
// to work you need to have the mailbox replicated in the alias table.
 +
// If you want to take control of these aliases as well set this to 'YES'.
 +
 +
// Alias control for superadmins
 +
$CONF['alias_control'] = 'YES';
 +
 +
// Alias Control for domain admins
 +
$CONF['alias_control_admin'] = 'YES';
 +
 +
// Special Alias Control
 +
// Set to 'NO' if your domain admins shouldn't be able to edit the default aliases
 +
// as defined in $CONF['default_aliases']
 +
$CONF['special_alias_control'] = 'NO';
 +
 +
// Alias Goto Field Limit
 +
// Set the max number of entries that you would like to see
 +
// in one 'goto' field in overview, the rest will be hidden and "[and X more...]" will be added.
 +
// '0' means no limits.
 +
$CONF['alias_goto_limit'] = '0';
 +
 +
// Alias Domains
 +
// Alias domains allow to "mirror" aliases and mailboxes to another domain. This makes
 +
// configuration easier if you need the same set of aliases on multiple domains, but
 +
// also requires postfix to do more database queries.
 +
// Note: If you update from 2.2.x or earlier, you will have to update your postfix configuration.
 +
// Set to 'NO' to disable alias domains.
 +
$CONF['alias_domain'] = 'YES';
 +
 +
// Backup
 +
// If you don't want backup tab set this to 'NO';
 +
//$CONF['backup'] = 'YES';
 +
 +
// Send Mail
 +
// If you don't want sendmail tab set this to 'NO';
 +
$CONF['sendmail'] = 'YES';
 +
 +
// Logging
 +
// If you don't want logging set this to 'NO';
 +
$CONF['logging'] = 'YES';
 +
 +
// Fetchmail
 +
// If you don't want fetchmail tab set this to 'NO';
 +
//$CONF['fetchmail'] = 'YES';
 +
 +
// fetchmail_extra_options allows users to specify any fetchmail options and any MDA
 +
// (it will even accept 'rm -rf /' as MDA!)
 +
// This should be set to NO, except if you *really* trust *all* your users.
 +
$CONF['fetchmail_extra_options'] = 'YES';
 +
 +
// Header
 +
$CONF['show_header_text'] = 'YES';
 +
$CONF['header_text'] = ':: Postfix Admin ::';
 +
 +
// Footer
 +
// Below information will be on all pages.
 +
// If you don't want the footer information to appear set this to 'NO'.
 +
$CONF['show_footer_text'] = 'YES';
 +
$CONF['footer_text'] = 'Return to adminko';
 +
$CONF['footer_link'] = 'http://megapuper.ru/adm/';
 +
 +
// MOTD ("Motto of the day")
 +
// You can display a MOTD below the menu on all pages.
 +
// This can be configured seperately for users, domain admins and superadmins
 +
$CONF['motd_user'] = '';
 +
$CONF['motd_admin'] = '';
 +
$CONF['motd_superadmin'] = '';
 +
 +
// Welcome Message
 +
// This message is send to every newly created mailbox.
 +
// Change the text between EOM.
 +
$CONF['welcome_text'] = <<<EOM
 +
Hi,
 +
 +
Welcome to your new account.
 +
EOM;
 +
 +
// When creating mailboxes or aliases, check that the domain-part of the
 +
// address is legal by performing a name server look-up.
 +
$CONF['emailcheck_resolve_domain']='NO';
 +
 +
 +
// Optional:
 +
// Analyze alias gotos and display a colored block in the first column
 +
// indicating if an alias or mailbox appears to deliver to a non-existent
 +
// account.  Also, display indications, for POP/IMAP mailboxes and
 +
// for custom destinations (such as mailboxes that forward to a UNIX shell
 +
// account or mail that is sent to a MS exchange server, or any other
 +
// domain or subdomain you use)
 +
// See http://www.w3schools.com/html/html_colornames.asp for a list of
 +
// color names available on most browsers
 +
 +
//set to YES to enable this feature
 +
$CONF['show_status']='YES';
 +
//display a guide to what these colors mean
 +
$CONF['show_status_key']='YES';
 +
// 'show_status_text' will be displayed with the background colors
 +
// associated with each status, you can customize it here
 +
$CONF['show_status_text']='&nbsp;&nbsp;';
 +
// show_undeliverable is useful if most accounts are delivered to this
 +
// postfix system.  If many aliases and mailboxes are forwarded
 +
// elsewhere, you will probably want to disable this.
 +
$CONF['show_undeliverable']='YES';
 +
$CONF['show_undeliverable_color']='tomato';
 +
// mails to these domains will never be flagged as undeliverable
 +
$CONF['show_undeliverable_exceptions']=array("unixmail.domain.ext","exchangeserver.domain.ext");
 +
$CONF['show_popimap']='YES';
 +
$CONF['show_popimap_color']='darkgrey';
 +
// you can assign special colors to some domains. To do this,
 +
// - add the domain to show_custom_domains
 +
// - add the corresponding color to show_custom_colors
 +
$CONF['show_custom_domains']=array("servmp.megapuper.ru","localhost");
 +
$CONF['show_custom_colors']=array("lightgreen","lightblue");
 +
// If you use a recipient_delimiter in your postfix config, you can also honor it when aliases are checked.
 +
// Example: $CONF['recipient_delimiter'] = "+";
 +
// Set to "" to disable this check.
 +
$CONF['recipient_delimiter'] = "+";
 +
 +
// Optional:
 +
// Script to run after creation of mailboxes.
 +
// Note that this may fail if PHP is run in "safe mode", or if
 +
// operating system features (such as SELinux) or limitations
 +
// prevent the web-server from executing external scripts.
 +
// Parameters: (1) username (2) domain (3) maildir (4) quota
 +
// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
 +
$CONF['mailbox_postcreation_script'] = '/usr/local/www/postfix/scripts/addmail.sh';
 +
 +
// Optional:
 +
// Script to run after alteration of mailboxes.
 +
// Note that this may fail if PHP is run in "safe mode", or if
 +
// operating system features (such as SELinux) or limitations
 +
// prevent the web-server from executing external scripts.
 +
// Parameters: (1) username (2) domain (3) maildir (4) quota
 +
// $CONF['mailbox_postedit_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postedit.sh';
 +
$CONF['mailbox_postedit_script'] = '/usr/local/www/postfix/scripts/editmail.sh';
 +
 +
// Optional:
 +
// Script to run after deletion of mailboxes.
 +
// Note that this may fail if PHP is run in "safe mode", or if
 +
// operating system features (such as SELinux) or limitations
 +
// prevent the web-server from executing external scripts.
 +
// Parameters: (1) username (2) domain
 +
// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
 +
$CONF['mailbox_postdeletion_script'] = '/usr/local/www/postfix/scripts/delmail.sh';
 +
 +
// Optional:
 +
// Script to run after creation of domains.
 +
// Note that this may fail if PHP is run in "safe mode", or if
 +
// operating system features (such as SELinux) or limitations
 +
// prevent the web-server from executing external scripts.
 +
// Parameters: (1) domain
 +
//$CONF['domain_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postcreation.sh';
 +
$CONF['domain_postcreation_script'] = '';
 +
 +
// Optional:
 +
// Script to run after deletion of domains.
 +
// Note that this may fail if PHP is run in "safe mode", or if
 +
// operating system features (such as SELinux) or limitations
 +
// prevent the web-server from executing external scripts.
 +
// Parameters: (1) domain
 +
// $CONF['domain_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh';
 +
$CONF['domain_postdeletion_script'] = '';
 +
 +
// Optional:
 +
// Sub-folders which should automatically be created for new users.
 +
// The sub-folders will also be subscribed to automatically.
 +
// Will only work with IMAP server which implement sub-folders.
 +
// Will not work with POP3.
 +
// If you define create_mailbox_subdirs, then the
 +
// create_mailbox_subdirs_host must also be defined.
 +
//
 +
// $CONF['create_mailbox_subdirs']=array('Spam');
 +
$CONF['create_mailbox_subdirs'] = array('Drafts', 'Sent', 'Trash', 'Archive');
 +
$CONF['create_mailbox_subdirs_host']='127.0.0.1';
 +
//
 +
// Specify '' for Dovecot and 'INBOX.' for Courier.
 +
$CONF['create_mailbox_subdirs_prefix']='';
 +
 +
// Optional:
 +
// Show used quotas from Dovecot dictionary backend in virtual
 +
// mailbox listing.
 +
// See: DOCUMENTATION/DOVECOT.txt
 +
//      http://wiki.dovecot.org/Quota/Dict
 +
//
 +
$CONF['used_quotas'] = 'YES';
 +
 +
// if you use dovecot >= 1.2, set this to yes.
 +
// Note about dovecot config: table "quota" is for 1.0 & 1.1, table "quota2" is for dovecot 1.2 and newer
 +
$CONF['new_quota_table'] = 'YES';
 +
 +
//
 +
// Normally, the TCP port number does not have to be specified.
 +
$CONF['create_mailbox_subdirs_hostport']=143;
 +
//
 +
// If you have trouble connecting to the IMAP-server, then specify
 +
// a value for $CONF['create_mailbox_subdirs_hostoptions']. These
 +
// are some examples to experiment with:
 +
// $CONF['create_mailbox_subdirs_hostoptions']=array('notls');
 +
// $CONF['create_mailbox_subdirs_hostoptions']=array('novalidate-cert','norsh');
 +
// See also the "Optional flags for names" table at
 +
// http://www.php.net/manual/en/function.imap-open.php
 +
$CONF['create_mailbox_subdirs_hostoptions'] = array('novalidate-cert','norsh');
 +
 +
 +
// Theme Config
 +
// Specify your own logo and CSS file
 +
$CONF['theme_logo'] = 'images/logo-default.png';
 +
$CONF['theme_css'] = 'css/default.css';
 +
// If you want to customize some styles without editing the $CONF['theme_css'] file,
 +
// you can add a custom CSS file. It will be included after $CONF['theme_css'].
 +
$CONF['theme_custom_css'] = '';
 +
 +
// XMLRPC Interface.
 +
// This should be only of use if you wish to use e.g the
 +
// Postfixadmin-Squirrelmail package
 +
//  change to boolean true to enable xmlrpc
 +
$CONF['xmlrpc_enabled'] = false;
 +
 +
// If you want to keep most settings at default values and/or want to ensure
 +
// that future updates work without problems, you can use a separate config
 +
// file (config.local.php) instead of editing this file and override some
 +
// settings there.
 +
if (file_exists(dirname(__FILE__) . '/config.local.php')) {
 +
    include(dirname(__FILE__) . '/config.local.php');
 +
}
 +
 +
//
 +
// END OF CONFIG FILE
 +
//
 +
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
 +
 +
</spoiler>
  
  

Версия 17:00, 22 апреля 2015

При установке будем ориентироваться на этот мануал: http://dummyluck.com/page/pochtovyi_server_nastroika_opisanie
Настройку будем производить для сервера с одним доменом. Система FreeBSD 10.1


1. Подготовка. прописываем хостнейм /etc/rc.conf
hostname="mail.megapuper.ru"


делаем изменения в хостах /etc/hosts

127.0.0.1         localhost
109.172.52.114	  megapuper.ru
109.172.52.114    mail.megapuper.ru


создаём пользователя и группу vmail

# pw groupadd vmail -g 5000
# pw useradd vmail -g vmail -s /sbin/nologin -u 5000


сразу отключаем sendmail
/etc/rc.conf

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

/etc/periodic.conf

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"


2. Ставим Nginx, MySQL, PHP, PHP-extension. Этот web-сервер будет использоваться для postfixadmin.

Здесь коротко, ибо уже тыщу раз ставилось)


Nginx cтавим из пакетов

# pkg install nginx


основной конфиг /usr/local/etc/nginx/nginx.conf

user www;
worker_processes  2;
pid        /var/run/nginx.pid;
events {
worker_connections  1024;
}

http {
     access_log    /var/log/nginx/access.log;
     error_log     /var/log/nginx/error.log;

     include       /usr/local/etc/nginx/mime.types;
     default_type  application/octet-stream;

     sendfile on;
     tcp_nopush on;
     tcp_nodelay on;
     keepalive_timeout  65;
     client_max_body_size 5m;
     server_names_hash_bucket_size 64;
     types_hash_max_size 2048;
     types_hash_bucket_size 64;
     include /usr/local/etc/nginx/conf/*.conf;
}


конфиг виртуального хоста /usr/local/etc/nginx/conf/postfix.conf

server {
        listen 80;
        server_name postfix.megapuper.ru;

root /usr/local/www/postfix;
        index index.php index.html index.htm;

        access_log /var/log/nginx/postfix.access.log;
        error_log  /var/log/nginx/postfix.error.log;

location / {
#        try_files $uri $uri/ /index.php?$uri&$args;
        }

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:10000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
    fastcgi_intercept_errors on;
    include fastcgi_params;
        }
    }


PHP и нужные PHP-extension тоже ставим из пакетов

# pkg install php55
# pkg install php55-* (пригодятся php55-ctype php55-dom php55-gd php55-hash php55-iconv php55-imap php55-json php55-mbstring php55-mcrypt php55-mysql php55-mysqli php55-session php55-xml)


конфиг php-fpm /usr/local/etc/php-fpm.conf

[global]
error_log = /var/log/php/php-fpm.log
pid = /var/run/php-fpm.pid
log_level = notice
include=/usr/local/etc/php/*.conf


конфиг для виртуального хоста /usr/local/etc/php/postfix.conf

[postfix]
prefix = /usr/local/www/$pool
listen = 127.0.0.1:10000
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0660
user = www
group = www
pm = dynamic
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 100
;pm.status_path = /status/php-fpm/$pool
request_terminate_timeout = 0
request_slowlog_timeout = 1m
slowlog = /var/log/php/$pool.slow.log
catch_workers_output = yes


MySQL тоже из пакетов

# pkg install mysql56-server


простенький конфиг /etc/my.cnf

[mysqld]
bind-address=127.0.0.1

в конфигах. где используется подключение к базе указываем хост 127.0.0.1

После этого имеем готовый web-сервер можно переходить к установке postfixadmin


3. Установка PostfixAdmin

Скачиваем последнюю версию отсюда http://sourceforge.net/projects/postfixadmin/ и заливаем на web-сервер


создаём базу и даём права пользователю

> create database postfix character set utf8 collate utf8_general_ci;
> grant all on postfix.* to postfix@127.0.0.1 identified by 'пароль';


Правим основной конфиг postfixadmin config.inc.php Spoiler






6. Устанавливаем Postfix.


7. Устанавливаем Dovecot.