Postfix

Январь 24, 2010 · Posted in Без рубрики 

Очередная статья из цикла «для себя».

Поскольку количество проектов на сервере все больше (хоть пока и не приносящих прибыли), настало время наладить работу почтовой системы.

Дано: FreeBSD 7.2-RELEASE.
Начитавшись гугля, выбрал Postfix+Dovecot+MySql+PostfixAdmin+RoundCube.

Рекомендаций море, много из них разных. Два дня мучений, настроек по разным мануалам ничего не дали. Авторизация по imap, pop проходила, а доставка почты не работала. Вывод достаточно прост: нельзя действовать прямо по мануалам, нужно включать мозг.

Дело нелегкое, почти забытое. Удаляю все конфиги, начинаю все с начала. Иду на сайт Dovecot`a и делаю согласно рекомендаций, учитывая реалии.

Настраиваем Dovecot:

собираем:
[X] KQUEUE kqueue(2) support
[X] SSL SSL support
[X] POP3 POP3 support
[X] MYSQL MySQL support

dovecot.conf


## Dovecot configuration file

# Base directory where to store runtime data.
base_dir = /var/run/dovecot/

# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap  pop3

disable_plaintext_auth = no

# Log file to use for error messages, instead of sending them to syslog.
# /dev/stderr can be used to log into stderr.
log_path = /var/log/dovecot

# Log file to use for informational and debug messages.
# Default is the same as log_path.
info_log_path = /var/log/dovecot_inf

# Prefix for each line written to log file. % codes are in strftime(3)
# format.
log_timestamp = "%b %d %H:%M:%S "

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = no

# SSL ciphers to use
#ssl_cipher_list = ALL:!LOW:!SSLv2

# Show protocol level SSL errors.
#verbose_ssl = no

##
## Login processes
##

# <doc/wiki/LoginProcess.txt>
rything in this directory is deleted when Dovecot is started.

#login_processes_count = 3

#login_max_connections = 256

# Greeting message for clients.
login_greeting = Dovecot ready.

# Login log format. %$ contains login_log_format_elements string, %s contains
# the data we want to log.
login_log_format = %$: %s

# There are a few special variables you can use, eg.:
#
#   %u - username
#   %n - user part in user@domain, same as %u if there's no domain
#   %d - domain part in user@domain, empty if there's no domain
#   %h - home directory
#
# See <doc/wiki/Variables.txt> for full list. Some examples:
#  ==================mail location ========================
mail_location = maildir:/home/vmail/%d/%n

mail_privileged_group = mail

mail_debug = yes

mail_log_prefix = "%Us(%u): "

mail_log_max_lines_per_sec = 10

dotlock_use_excl = yes

verbose_proctitle = yes

first_valid_gid = 6
last_valid_gid = 65534

maildir_copy_with_hardlinks = yes

protocol imap {
#login_greeting_capability = yes

# Login executable location.
login_executable = /usr/local/libexec/dovecot/imap-login

#
mail_executable = /usr/local/libexec/dovecot/imap

mail_plugins = quota imap_quota trash
mail_plugin_dir = /usr/local/lib/dovecot/imap

imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}

##
## POP3 specific settings
##

protocol pop3 {

pop3_uidl_format = %08Xu%08Xv

pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

##
## LDA specific settings
##

protocol lda {
# Address to use when sending rejection mails.
postmaster_address = one.dreamw@gmail.com

# Hostname to use in various parts of sent mails, eg. in Message-Id.
# Default is the system's real hostname.
#hostname =

# Support for dynamically loadable plugins. mail_plugins is a space separated
# list of plugins to load.
#mail_plugins =
#mail_plugin_dir = /usr/local/lib/dovecot/lda

# If user is over quota, return with temporary failure instead of
# bouncing the mail.
#quota_full_tempfail = no

# Format to use for logging mail deliveries. You can use variables:
#  %$ - Delivery status message (e.g. "saved to INBOX")
#  %m - Message-ID
#  %s - Subject
#  %f - From address
deliver_log_format = msgid=%m: %$

# Binary to use for sending mails.
sendmail_path = /usr/sbin/sendmail

# Subject: header to use for rejection mails. You can use the same variables
# as for rejection_reason below.
rejection_subject = Rejected: %s

# Human readable error message for rejection mails. You can use variables:
#  %n = CRLF, %r = reason, %s = original subject, %t = recipient
rejection_reason = Your message to <%t> was automatically rejected:%n%r

# UNIX socket path to master authentication server to find users.
# auth_socket_path = /var/run/dovecot/auth-master
}

auth_executable = /usr/local/libexec/dovecot/dovecot-auth

auth_username_format = %Lu

auth_verbose = yes

auth_debug = yes

auth_debug_passwords = yes

auth default {
# Space separated list of wanted authentication mechanisms:
#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
#   gss-spnego
# NOTE: See also disable_plaintext_auth setting.
mechanisms = plain login

passdb sql {
# Path for SQL configuration file.
# See /usr/local/share/examples/dovecot/dovecot-sql.conf
#args = /usr/local/etc/dovecot-sql.conf
args = /usr/local/etc/dovecot-sql.conf
}

userdb passwd {
args = blocking=no
}

# SQL database <doc/wiki/AuthDatabase.SQL.txt>
userdb sql {
# Path for SQL configuration file.
# See /usr/local/share/examples/dovecot/dovecot-sql.conf
args = /usr/local/etc/dovecot-sql.conf
}

user = nobody

socket listen {
master {
# Master socket provides access to userdb information. It's typically
# used to give Dovecot's local delivery agent access to userdb so it
# can find mailbox locations.
path = /var/run/dovecot/auth-master
mode = 0600
# Default user/group is the one who started dovecot-auth (root)
user = vmail
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix

}
}
}

dict {
#quota = mysql:/usr/local/etc/dovecot-dict-quota.conf
#expire = db:/var/db/dovecot/expire.db
}

plugin {

quota = maildir:User quota
quota_rule = *:storage=1GB
# 10% of 1GB = 100MB
quota_rule2 = Trash:storage=10%%
# 20% of 1GB = 200MB
quota_rule3 = Spam:storage=20%%

trash = /usr/local/etc/dovecot-trash.conf

expire = Trash 7 Spam 30

}
first_valid_uid = 101
last_valid_uid = 65534
#fisrt_valid_gid = 6
#last_valid_gid = 65534

Авторизация и доставка в Dovecot через MySql:

dovecot-sql.conf

<pre>driver = mysql
connect = host=localhost dbname=postfix user=postfix password=*********
default_pass_scheme = MD5-CRYPT
password_query = SELECT username AS user, password FROM mailbox  WHERE username = '%u' AND domain = '%d'
user_query = SELECT maildir, 101 AS uid, 6 AS gid FROM mailbox WHERE username = '%u' AND domain = '%d'

#password_query = SELECT password FROM mailbox WHERE username = '%u'
#user_query = SELECT maildir, 65534 AS uid, 65534 AS gid FROM mailbox WHERE username = '%u'

ну и плагин Корзины:
dovecot-trash.conf

# Spam mailbox is emptied before Trash
1 Spam
# Trash mailbox is emptied before Sent
2 Trash
# If both Sent and "Sent Messages" mailboxes exist, the next oldest message
# to be deleted is looked up from both of the mailboxes.
3 Sent
3 Sent Messages

Настраиваем Postfix:

собираем:
[X] PCRE Perl Compatible Regular Expressions
[X] DOVECOT Dovecot SASL authentication method
[X] TLS Enable SSL and TLS support
[X] MYSQL MySQL maps (choose version with WITH_MYSQL_VER)
[X] TEST SMTP/LMTP test server and generator

master.cf

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
#submission inet n       -       n       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       n       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#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
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       n       -       -       smtp
 -o smtp_fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     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/local/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/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/local/cyrus/bin/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=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
#
#scalemail-backend unix -       n       n       -       2       pipe
#  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
#  ${nexthop} ${user} ${extension}
#
#mailman   unix  -       n       n       -       -       pipe
#  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
#  ${nexthop} ${user}

dovecot   unix  -       n       n       -       -       pipe
 flags=DRhu user=vmail:mail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}

#  dovecot   unix  -       n       n       -       -       pipe
#    flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d ${recipient}

main.cf


mailbox_size_limit = 102400000
message_size_limit = 10240000

queue_directory = /var/spool/postfix

command_directory = /usr/local/sbin

daemon_directory = /usr/local/libexec/postfix

data_directory = /var/db/postfix

mail_owner = postfix

myhostname = mail.pdahelp.info
myorigin = $mydomain

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
 mail.$mydomain, www.$mydomain, ftp.$mydomain

#
local_recipient_maps = unix:passwd.byname $alias_maps

unknown_local_recipient_reject_code = 550

mynetworks_style = host

mynetworks = 168.100.189.0/28, 127.0.0.0/8

relay_domains = $mydestination

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

home_mailbox = Maildir/

mail_spool_directory = /var/mail

mailbox_command = /usr/local/libexec/dovecot/deliver

mailbox_transport = dovecot

smtpd_banner = $myhostname ESMTP $mail_name

local_destination_concurrency_limit = 2

debug_peer_level = 2

debug_peer_list = 127.0.0.1

debugger_command =
 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
 ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/local/sbin/sendmail

newaliases_path = /usr/local/bin/newaliases

mailq_path = /usr/local/bin/mailq

setgid_group = maildrop

html_directory = /usr/local/share/doc/postfix

manpage_directory = /usr/local/man

sample_directory = /usr/local/etc/postfix

readme_directory = /usr/local/share/doc/postfix

dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
#virtual_mailbox_domains         = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf
virtual_mailbox_domains = другой_домен, другой_домен2
virtual_mailbox_base            = /var/vmail
virtual_mailbox_maps            = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf
virtual_alias_maps              = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf
virtual_minimum_uid             = 101
virtual_uid_maps                = static:101
virtual_gid_maps                = static:12

smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_helo_required = yes

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

mysql_virtual_alias_maps.cf

user = postfix
password = *********
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address = '%s' AND active = '1'
mysql_virtual_mailbox_maps.cf
user = postfix
password = ***************
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username = '%s'

Настраиваем PostFixAdmin:

config.inc.php

<?php

$CONF['configured'] = true;

$CONF['setup_password'] = '***********:*************';

$CONF['postfix_admin_url'] = '';

$CONF['postfix_admin_path'] = dirname(__FILE__);

$CONF['default_language'] = 'en';

$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = '***************';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

$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',
);

$CONF['admin_email'] = 'root@pdahelp.info';

$CONF['smtp_server'] = 'pdahelp.info';
$CONF['smtp_port'] = '25';

$CONF['encrypt'] = 'md5crypt';

$CONF['authlib_default_flavor'] = 'md5raw';

$CONF['dovecotpw'] = "/usr/sbin/dovecotpw";

$CONF['min_password_length'] = 5;

$CONF['generate_password'] = 'NO';

$CONF['show_password'] = 'NO';

$CONF['page_size'] = '10';

$CONF['default_aliases'] = array (
 'abuse' => 'abuse@pdahelp.info',
 'hostmaster' => 'hostmaster@pdahelp.info',
 'postmaster' => 'postmaster@pdahelp.info',
 'webmaster' => 'webmaster@pdahelp.info'
);

$CONF['domain_path'] = 'YES';

$CONF['domain_in_mailbox'] = 'NO';

$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '10';

$CONF['quota'] = 'YES';

$CONF['quota_multiplier'] = '1024000';

$CONF['transport'] = 'NO';

$CONF['transport_options'] = array (
 'virtual',  // for virtual accounts
 'local',    // for system accounts
 'relay'     // for backup mx
);

$CONF['transport_default'] = 'virtual';

$CONF['vacation'] = 'NO';

$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';

$CONF['vacation_control'] ='YES';

$CONF['vacation_control_admin'] = 'YES';

$CONF['alias_control'] = 'YES';

$CONF['alias_control_admin'] = 'YEs';

$CONF['special_alias_control'] = 'YES';

$CONF['alias_goto_limit'] = '0';

$CONF['alias_domain'] = 'YES';

$CONF['backup'] = 'YES';

$CONF['sendmail'] = 'YES';

$CONF['logging'] = 'YES';

$CONF['fetchmail'] = 'YES';

$CONF['fetchmail_extra_options'] = 'YES';

// Header
$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';

$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";

$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'pdahelp.info';
$CONF['footer_link'] = 'http://pdahelp.infp';

$CONF['welcome_text'] = <<<EOM
Hi,

Welcome to your new account.
EOM;

$CONF['emailcheck_resolve_domain']='NO';

//set to YES to enable this feature
$CONF['show_status']='YES';
//display a guide to what these colors mean
$CONF['show_status_key']='NO';

$CONF['show_status_text']='&nbsp;&nbsp;';

$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","gmail.com");
$CONF['show_popimap']='NO';
$CONF['show_popimap_color']='darkgrey';

$CONF['show_custom_domains']=array("pdahelp.info","andboson.net");
$CONF['show_custom_colors']=array("lightgreen","lightblue");

$CONF['recipient_delimiter'] = "";

$CONF['create_mailbox_subdirs_prefix']='INBOX.';

$CONF['used_quotas'] = 'YES';

$CONF['new_quota_table'] = 'NO';

$CONF['theme_logo'] = 'images/logo-default.png';
$CONF['theme_css'] = 'css/default.css';

$CONF['xmlrpc_enabled'] = false;

if (file_exists(dirname(__FILE__) . '/config.local.php')) {
 include(dirname(__FILE__) . '/config.local.php');
}

Настраиваем RoundeCube:

main.inc.php

<?php

$rcmail_config = array();

$rcmail_config['debug_level'] = 4;

$rcmail_config['log_driver'] = 'file';

$rcmail_config['syslog_id'] = 'roundcube';

$rcmail_config['syslog_facility'] = LOG_USER;

$rcmail_config['log_dir'] = 'logs/';

$rcmail_config['temp_dir'] = 'temp/';

$rcmail_config['enable_caching'] = FALSE;

$rcmail_config['message_cache_lifetime'] = '10d';

$rcmail_config['auto_create_user'] = TRUE;

$rcmail_config['default_host'] = 'pdahelp.info';

// TCP port used for IMAP connections
$rcmail_config['default_port'] = 143;

$rcmail_config['imap_auth_type'] = "check";

$rcmail_config['imap_root'] = null;
$rcmail_config['imap_delimiter'] = null;

$rcmail_config['username_domain'] = '';

$rcmail_config['mail_domain'] = '';

// Path to a virtuser table file to resolve user names and e-mail addresses
$rcmail_config['virtuser_file'] = '';

$rcmail_config['virtuser_query'] = '';

$rcmail_config['smtp_server'] = '';

$rcmail_config['smtp_port'] = 25;

$rcmail_config['smtp_user'] = '';

$rcmail_config['smtp_pass'] = '';

$rcmail_config['smtp_auth_type'] = '';

$rcmail_config['smtp_helo_host'] = 'pdahelp.info';

$rcmail_config['smtp_log'] = TRUE;

$rcmail_config['sendmail_delay'] = 0;

$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment');

$rcmail_config['skin_include_php'] = FALSE;

$rcmail_config['session_lifetime'] = 10;

$rcmail_config['ip_check'] = TRUE;

$rcmail_config['double_auth'] = false;

$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';

$rcmail_config['language'] = null;

$rcmail_config['date_short'] = 'D H:i';

$rcmail_config['date_long'] = 'd.m.Y H:i';

$rcmail_config['date_today'] = 'H:i';

$rcmail_config['useragent'] = 'RoundCube Webmail/0.2.2';

$rcmail_config['product_name'] = 'RoundCube Webmail';

$rcmail_config['drafts_mbox'] = 'Drafts';

// store spam messages in this mailbox
$rcmail_config['junk_mbox'] = 'Junk';

$rcmail_config['sent_mbox'] = 'Sent';

$rcmail_config['trash_mbox'] = 'Trash';

$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');

// automatically create the above listed default folders on login
$rcmail_config['create_default_folders'] = TRUE;

// protect the default folders from renames, deletes, and subscription changes
$rcmail_config['protect_default_folders'] = FALSE;

// if in your system 0 quota means no limit set this option to TRUE
$rcmail_config['quota_zero_as_unlimited'] = FALSE;

$rcmail_config['mdn_requests'] = 0;

// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'UTF-8';

$rcmail_config['enable_spellcheck'] = TRUE;

$rcmail_config['spellcheck_engine'] = 'googie';

$rcmail_config['spellcheck_uri'] = '';

$rcmail_config['spellcheck_languages'] = NULL;

$rcmail_config['generic_message_footer'] = '';

// add a received header to outgoing mails containing the creators IP and hostname
$rcmail_config['http_received_header'] = false;

$rcmail_config['mail_header_delimiter'] = NULL;

// session domain: .example.org
$rcmail_config['session_domain'] = '';

$rcmail_config['address_book_type'] = 'sql';

$rcmail_config['ldap_public'] = array();

$rcmail_config['autocomplete_addressbooks'] = array('sql');

// don't allow these settings to be overriden by the user
$rcmail_config['dont_override'] = array();

$rcmail_config['identities_level'] = 0;

$rcmail_config['include_host_config'] = false;

// don't let users set pagesize to more than this value if set
$rcmail_config['max_pagesize'] = 200;

// mime magic database
$rcmail_config['mime_magic'] = '/usr/share/misc/magic';

// default sort col
$rcmail_config['message_sort_col'] = 'date';

// default sort order
$rcmail_config['message_sort_order'] = 'DESC';

$rcmail_config['enable_installer'] = false;

// Log successful logins
$rcmail_config['log_logins'] = false;

$rcmail_config['delete_always'] = false;

$rcmail_config['min_keep_alive'] = 60;

/***** these settings can be overwritten by user's preferences *****/

// skin name: folder from skins/
$rcmail_config['skin'] = 'default';

// show up to X items in list view
$rcmail_config['pagesize'] = 40;

// use this timezone to display date/time
$rcmail_config['timezone'] = 'auto';

// is daylight saving On?
$rcmail_config['dst_active'] = (bool)date('I');

// prefer displaying HTML messages
$rcmail_config['prefer_html'] = TRUE;

$rcmail_config['show_images'] = 1;

// compose html formatted messages by default
$rcmail_config['htmleditor'] = TRUE;

// show pretty dates as standard
$rcmail_config['prettydate'] = TRUE;

$rcmail_config['draft_autosave'] = 300;

$rcmail_config['preview_pane'] = FALSE;

$rcmail_config['focus_on_new_message'] = true;

$rcmail_config['logout_purge'] = FALSE;

$rcmail_config['logout_expunge'] = FALSE;

$rcmail_config['inline_images'] = TRUE;

$rcmail_config['mime_param_folding'] = 0;

$rcmail_config['skip_deleted'] = FALSE;

$rcmail_config['read_when_deleted'] = TRUE;

$rcmail_config['flag_for_deletion'] = FALSE;

$rcmail_config['keep_alive'] = 60;

// If true all folders will be checked for recent messages
$rcmail_config['check_all_folders'] = FALSE;

// end of config file
?>
Вроде все. Все работает.
Просто нужно было осмысленно править конфиги.
 Ну ничего, для первого раза, без вопросов к "отцам" и т.п., 3 дня настройки почтового сервера - это нормально :)

Comments

6 Responses to “Postfix”

  1. xxx_MAN_xxx on Январь 28th, 2010 19:36

    +1 нельзя следовать строчка в строчку по конфигам, сам по граблям прыгал пока exim настраивал.
    но мне больше exim понравился :)

    Reply

    Андрей Босонченко Reply:

    а типа постфиксадмина у него есть?

    Reply

    xxx_MAN_xxx Reply:

    так он и есть, только в конфиге указываешь что пользуеш exim

    Reply

  2. дядя on Февраль 12th, 2010 23:46

    совсем неплохо, добавлю несколько пожеланий.
    1Кроме конфигов неплохо было бы увидеть с чем собирались пакеты make config
    2 какие uid и gid создавались…

    Посмотрите, есть один хороший сайт http://www.lissyara.su там много полезных вещей околосерверных для FreeBSD и не только, там же есть форум.

    Reply

    Андрей Босонченко Reply:

    Напишу

    За сайт спасибо, часто туда тыкаюсь в поисках мануала. А спрашивать на форумах не люблю, проще самому разобраться, так надежнее.

    Reply

  3. BESSIEMullins on Сентябрь 9th, 2010 23:43

    I will recommend not to hold back until you earn big sum of money to order all you need! You should just get the personal loans or sba loan and feel fine

    Reply

Leave a Reply




  • Метки

  • Комментарии

me