Postfix
Очередная статья из цикла «для себя».
Поскольку количество проектов на сервере все больше (хоть пока и не приносящих прибыли), настало время наладить работу почтовой системы.
Дано: 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.cfuser = 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']=' '; $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”
Leave a Reply







+1 нельзя следовать строчка в строчку по конфигам, сам по граблям прыгал пока exim настраивал.
но мне больше exim понравился :)
Reply
Андрей Босонченко Reply:
Февраль 4th, 2010 at 19:50
а типа постфиксадмина у него есть?
Reply
xxx_MAN_xxx Reply:
Февраль 28th, 2010 at 19:51
так он и есть, только в конфиге указываешь что пользуеш exim
Reply
совсем неплохо, добавлю несколько пожеланий.
1Кроме конфигов неплохо было бы увидеть с чем собирались пакеты make config
2 какие uid и gid создавались…
Посмотрите, есть один хороший сайт http://www.lissyara.su там много полезных вещей околосерверных для FreeBSD и не только, там же есть форум.
Reply
Андрей Босонченко Reply:
Февраль 13th, 2010 at 00:22
Напишу
За сайт спасибо, часто туда тыкаюсь в поисках мануала. А спрашивать на форумах не люблю, проще самому разобраться, так надежнее.
Reply
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