Воскресенье, 13 Май 2012 16:15

Настройка домашнего сервера, выполняющего роли веб-сервера, почтового сервера и фтп-сервера. Этап 3.

Автор
Оцените материал
(8 голосов)

Этап 3. Настройка почтового сервера.

Для почтового сервера я выбрал, пожалуй, самую популярную связку: postfix+dovecot2+spamassassin+postfixadmin+roundcube. Не хватает антивирусника, но мне он реально не нужен, поскольку я сижу на линуксе что дома, что на работе. В настройке этого всего мне помогли вот эти статьи:

http://www.sys-adm.org.ua/mail/dovecot.php
http://vladimir-stupin.blogspot.com/2009/11/postfix-dovecot-postfixadmin.html
http://bozza.ru/art-170.html
http://www.opennet.ru/docs/RUS/postfix_soho
http://extmemory.blogspot.com/2010/01/spamassassin.html
http://gq.net.ru/2007/02/23/spamassassin-howto
http://www.samag.ru/archive/article/559
http://www.opennet.ru/base/net/spamassassin_mysql.txt.html
http://help-host.ru/ispmanager/admins-servers/41-ustanovka-roundcube-na-freebsd.html
http://mdex-nn.ru/page/nastrojka-pochtovogo-veb-interfejsa-roundcube

Начнём с установки postfix, который по зависимостям должен сразу же и dovecot за собой вытянуть:

cd /usr/ports/mail/postfix
make install clean

Опции сборки:

Опции сборки зависимостей:

Хочу сразу обратить ваше внимание на сборку cyrys-sasl 2! Оставляйте опции по умолчанию, не ставьте поддержку mysql. Если поставите поддержку mysql, то при приёме-отправке почты у вас будет вылазить вот такая ошибка:

auxpropfunc error no mechanism available

Информация взята вот из этих источников:

http://www.cyberciti.biz/faq/postfix-sql_select-option-missing-auxpropfunc-error
http://blog.mydream.com.hk/howto/linux/auxpropfunc-error-no-mechanism-available-errors

Продолжаем про опции зависимостей:

В конце установки будет показан вот такой вопрос:

Would you like to activate Postfix in /etc/mail/mailer.conf [n]?

Если хотим полностью заменить текущий MTA Sendmail на Postfix, то отвечаем: "y". Я так и ответил. А в rc.conf добавляем вот это:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
postfix_enable="YES"
dovecot_enable="YES"

Сразу к конфигурированию постфикса пока не будем приступать. Я сначала установил postfixadmin и создал в нём домен и ящики. Поэтому, ставим postfixadmin:

cd /usr/ports/mail/postfixadmin
make install clean

Опции сборки по умолчанию оставляем, поскольку поддержка mysql стоит по умолчанию. После установки в каталоге /usr/local/www появится каталог postfixadmin. Здесь уже кому как удобнее будет: кто-то захочет создать дополнительную секцию в nginx для этого ресурса, кто-то — вообще виртуальный домен. Кому как нравится. Но я сделал проще: я создал каталог /usr/local/www/mysite/mailadmin и в него скопировал всё содержимое из каталога postfixadmin. Права дать на этот каталог не забыл:

chown -R www:www mailadmin

Теперь, в моём случае, я смогу заходить в постфиксадмин по адресу: http://192.168.0.100/mailadmin. Но для этого надо сначала сконфигурировать postfixadmin. Редактирую файл /usr/local/www/mysite/mailadmin/config.inc.php (привожу лишь те строчки, в которые вносил изменения):

$CONF['configured'] = true;
$CONF['setup_password'] = 'ваш пароль';
$CONF['postfix_admin_url'] = 'https://example.com/mailadmin';
$CONF['postfix_admin_path'] = '/usr/local/www/mysite/mailadmin';
$CONF['default_language'] = 'ru';

// здесь, почему-то надо писать именно mysqli, хоть у нас и mysql база будет.
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'ваш пароль на базу mysql, которую мы потом создадим для постфиксадмина';
$CONF['database_name'] = 'postfix';

// Этот адрес будет использован для отправлния письма при создании нового ящика.
$CONF['admin_email'] = 'admin@example.com';

// исли в строчке ниже прописано что-то другое, то обязательно ставим так:
$CONF['encrypt'] = 'md5crypt';

// строчки ниже редактируйте на своё усмотрение
$CONF['default_aliases'] = array (
'abuse' => 'abuse@example.com',
'hostmaster' => 'hostmaster@example.com',
'postmaster' => 'postmaster@example.com',
'webmaster' => 'webmaster@example.com'
);

// Чтобы письма располагались по структуре: ~/domain/user
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';

// Квота по умолчанию в мегабайтах. Мне квота не нужна.
$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';

// Разрешить редактировать тип домена
$CONF['transport'] = 'YES';

// Управление псевдонимом для суперадмина
$CONF['alias_control'] = 'YES';

$CONF['user_footer_link'] = "https://example.com/mailadmin/main";
$CONF['footer_text'] = 'Return to example.com/mailadmin';
$CONF['footer_link'] = 'https://example.com/mailadmin';

// эти параметры выставляем так потому, что у нас dovecot
$CONF['create_mailbox_subdirs_prefix']='';
$CONF['new_quota_table'] = 'YES';

Теперь, нам надо сделать базу данных для постфиксадмина. Делаем:

mysql -p
CREATE DATABASE `postfix` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Теперь попробуем зайти вот по такой ссылке, чтобы запустился процесс настройки: http://192.168.0.100/mailadmin/setup.php И если всё сделали правильно, то должны увидеть вот это:

А если эту страничку пролистнуть вниз, то увидим приглашение с названием «Create superadmin account». Вводим:

Однако, после того, как нажмём кнопку «добавить администратора», у нас вылезет вот такая ошибка:

Это он просит подправить в конфиге параметр пароля, который мы там ввели в открытом виде. Нам нужно вставить пароль в том виде, в котором нас просит setup. И вот уже после того, как вы поправите в конфиге пароль, вы сможете создать учётную запись администратора. ВНИМАНИЕ! В моём случае, когда я поправил пароль в конфиге, достаточно было лишь обновить страничку в браузере (Firefox), и у меня сразу появилось уведомление:

Т.е., повторю, я не вбивал снова в эти поля пароль и т.д. — я просто обновил страничку в браузере, и учётная запись добавилась. После чего, можно, используя эту созданную учётку, переходить по адресу: http://192.168.0.100/mailadmin и настраивать домен и ящики пользователей. Да, и не забываем удалить файл /usr/local/www/mysite/mailadmin/setup.php, когда уже всё благополучно настроили.

После того, как настроите домен, пользователей и всё остальное, нужно будет сделать кое-что ещё. Дело в том, что postfixadmin не умеет сам себя перенаправлять в режим https (ну, по крайней мере, я не нашёл, как это делать.). А ведь это существенно повысит безопасность. Чтобы заходя на страничку http://192.168.0.100/mailadmin срабатывало перенаправление в режим https, надо в конфиг nginx внести кое-какую правку. Итак, находим в нём первую секцию server (который работает по порту 80) и, где-нибудь, после строчек

root /usr/local/www/mysite;
 index index.php;

добавляем вот такую конструкцию:

location ~ .*/mailadmin {
           if ($ssl_protocol = "") {
            rewrite .* https://example.com/mailadmin break;
           }
        }

Сохраняем и перезапускаем nginx. После чего, пробуем чего у нас получилось. На этом, с настройкой postfixadmin всё.

Переходим к настройке самого Postfix. Нам надо сделать так, чтобы он понимал всё то, что мы насоздавали в постфиксадмине. Для начала, отредактируем конфиг /usr/local/etc/postfix/main.cf (привожу лишь те строчки, которые я редактировал):

myhostname = example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = localhost
local_recipient_maps = unix:passwd.byname $alias_maps
mynetworks = 127.0.0.1/32
relay_domains =
alias_maps = hash:/usr/local/etc/aliases
alias_database = hash:/usr/local/etc/aliases
home_mailbox = Mailbox
mail_spool_directory = /usr/home/mail
smtpd_banner = $myhostname ESMTP $mail_name

virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:1911
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1911
virtual_transport = dovecot

virtual_destination_concurrency_limit = 10
# максимальное количество писем, которые почтовик может отправить одновременно.
virtual_destination_recipient_limit = 10
# максимальное количество писем, которые почтовик может принять одновременно.

virtual_uid_maps = static:1911
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient,
reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus

smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /usr/local/etc/postfix/smtpd.pem
smtpd_tls_cert_file = /usr/local/etc/postfix/smtpd.pem
smtpd_tls_CAfile = /usr/local/etc/postfix/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

После редактирования конфига нужно сделать ещё несколько вещей. Создадим пользователя и группу virtual для работы с виртуальными ящиками:

pw group add virtual -g 1911
pw user add virtual -g virtual -s /sbin/nologin -u 1911

gid и uid указываем такие же, как в main.cf указали. Создаём каталоги для локальных и виртуальных ящиков (хотя локальными я и не собираюсь пользоваться):

mkdir /usr/home/mail
mkdir /usr/home/vmail
chown postfix:postfix /usr/home/mail
chown virtual:virtual /usr/home/vmail

Далее, создаём файлы, с помощью которых постфикс сможет считывать данные из базы данных. Напомню, что именно в этой базе хранятся данные о доменах и пользователях, которые мы завели в постфиксадмине. Создаём файл /usr/local/etc/postfix/mysql_virtual_alias_maps.cf с таким содержимым:

user = postfix
password = ваш_пароль_на_базу
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address

Создаём файл /usr/local/etc/postfix/mysql_virtual_domains_maps.cf с содержимым:

user = postfix
password = ваш_пароль_на_базу
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'

Создаём файл /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf с содержимым:

user = postfix
password = ваш_пароль_на_базу
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

Чтобы работала шифрованная smtp-сессия надо создать самоподписанный доверенный сертификат. Находясь в каталоге /usr/local/etc/postfix, необходимо выполнить команду:

openssl req -new -nodes -x509 -out smtpd.pem -keyout smtpd.pem -days 9999

На задаваемые вопросы отвечаем примерно так:

Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Sverdlovskaya
Locality Name (eg, city) []:EKB
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mr.Technotrance
Organizational Unit Name (eg, section) []:noname
Common Name (eg, YOUR name) []:exapmle.com
Email Address []:yourmail@exapmle.com

Самым важным параметром является значение Common Name — оно должно совпадать с FQDN сервера.
На этом, постфикс пока оставим. Но и запускать его пока не будем. Осталось настроить Dovecot и Spamassassin.

Начнём с довекота. Зайдя в каталог /usr/local/etc/dovecot мы обнаружим, что там нет никаких конфигов. Но зато есть файл README, в котором написано, что конфиги надо скопировать из каталога /usr/local/share/doc/dovecot/example-config/. Так мы и сделаем, но нам от туда не все конфиги понадобятся. Копируем лишь папку conf.d и файлы dovecot-sql.conf.ext и dovecot.conf.

Редактируем dovecot.conf (только те строчки, которые я изменял):

protocols = imap
listen = *
base_dir = /var/run/dovecot/
instance_name = dovecot
login_trusted_networks = 127.0.0.1/32
shutdown_clients = yes

По такому же принципу редактируем dovecot-sql.conf.ext:

driver = mysql
connect = host=localhost dbname=postfix user=postfix password=ваш_пароль_на_базу
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT local_part FROM mailbox WHERE username = '%u'
iterate_query = SELECT local_part FROM mailbox

По такому же принципу редактируем conf.d/10-auth.conf:

disable_plaintext_auth = no
auth_default_realm = example.com
auth_worker_max_count = 10
auth_mechanisms = plain

# комментируем строчку:
# !include auth-system.conf.ext

# и наоборот, убираем из комментария строчку:
!include auth-sql.conf.ext

По такому же принципу редактируем conf.d/10-logging.conf:

log_path = /var/log/dovecot.log

По такому же принципу редактируем conf.d/10-mail.conf:

mail_location = mbox:/usr/home/vmail/%d/%n
mail_uid = 1911
mail_gid = 1911
first_valid_uid = 1911
last_valid_uid = 1911
first_valid_gid = 1911
last_valid_gid = 1911

По такому же принципу редактируем conf.d/10-master.conf:

default_internal_user = dovecot

service imap-login {
  inet_listener imap {
    port = 143
  } 
  inet_listener imaps {
    #port = 993
    ssl = no 
  }

  service_count = 1
  process_min_avail = 0

service imap {
  # Most of the memory goes to mmap()ing files. You may need to increase this
  # limit if you have huge mailboxes.
  vsz_limit = 384M
    
  # Max. number of IMAP processes (connections)
  #process_limit = 1024
}

service auth {
  unix_listener auth-userdb {
    mode = 0660   
    user = virtual 
    group = virtual
  }
  unix_listener auth-master {
    mode = 0660
    user = virtual 
    group = virtual
  }
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660   
    user = postfix 
    group = postfix
  }
}

По такому же принципу редактируем conf.d/10-ssl.conf:

ssl = no
# комментируем эти строчки. Не вижу смысла включать тут ssl, поскольку к имапу будет подключение только с локального хоста.
#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem

По такому же принципу редактируем conf.d/15-lda.conf:

hostname = example.com

По такому же принципу редактируем conf.d/20-imap.conf:

imap_id_send = *

По такому же принципу редактируем conf.d/auth-sql.conf.ext:

args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext

Остальные конфигурационные файлы я не трогал, оставляя их настройки по умолчанию.
Теперь установим и настроим Spamassassin. Установка:

cd /usr/ports/mail/p5-Mail-SpamAssassin
make install clean

Опции сборки:

Опции сборки зависимостей, в которых я что-либо менял:

В конце установки будет вот такой вопрос:

Do you wish to run sa-update to fetch new rules [N]?

Я ответил положительно. Также, после установки, появится каталог /usr/local/etc/mail/spamassassin, а в нём можно будет найти файл local.cf.sample. Тут же, сделаем его копию с названием local.cf и уже её отредактируем:

# Список через пробел ящиков-ловушек (у меня таких пока нет, но в будущем наверно сделаю)
# spam@example.com
rewrite_header Subject *****SPAM*****
report_safe 0
trusted_networks 127.0.0.1/32
lock_method flock
required_score 5.0
use_bayes 1
bayes_auto_learn 1
ok_locales ru en

use_pyzor 1
pyzor_options --homedir /usr/home/spamassassin/pyzor/
use_razor2 1
razor_config /usr/local/etc/mail/spamassassin/razor-agent.conf

use_dcc 1
dcc_home /usr/local/dcc
dcc_path /usr/local/bin/dccproc
dcc_timeout 10

# значение при превышении которого письмо будет рассматриваться
# как спам и будет производиться обучение системы анализа. Я пока закоментировал
# bayes_auto_learn_threshold_spam 12.0

# Это оо же самое, но наоборот для писем, которые не являются спамом.
# bayes_auto_learn_threshold_nonspam 0.1

Теперь создаём файл razor-agent.conf вот с таким содержимым:

# See razor-agent.conf (5)
# Change this to 5 for safer classification of MIME attachments. This will let more spam through
logic_method = 4

# Uncomment the next line for logging via syslog
#logfile = sys-syslog
razorhome = /usr/home/spamassassin/razor
debuglevel = 0

В файле v310.pre я закомментировал экспериментальный плагин:

# loadplugin Mail::SpamAssassin::Plugin::ReplaceTags

В файле v312.pre закомментировал ещё один экспериментальный плагин:

# loadplugin Mail::SpamAssassin::Plugin::DKIM

После редактирования конфигов не забываем создать каталоги для работы razor и pyzor:

mkdir /usr/home/spamassassin
mkdir /usr/home/spamassassin/pyzor
mkdir /usr/home/spamassassin/razor
chown -R spamd:spamd /usr/home/spamassassin

Также, надо создать mysql-базу для спамассассина. Незадача в том, что структура таблиц находится в архиве с исходниками, которые нам придётся скачать:

fetch http://www.sai.msu.su/apache//spamassassin/source/Mail-SpamAssassin-3.3.2.tar.bz2

В них и мы найдём каталог sql, который надо скопировать в какое-нибудь удобное место. Затем, перейдём в него и выполним создание базы:

mysql -p
CREATE DATABASE `spamassassin` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON spamassassin.* TO 'spamassassin'@'localhost' IDENTIFIED BY 'my_password' WITH GRANT OPTION;

После чего создаём в ней структуру таблиц. Делаем команду:

mysql -p spamassassin < userpref_mysql.sql

и получаем ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 8

Чтобы это исправить, находим эту самую пресловутую конструкцию 'TYPE=MyISAM' в файлах awl_mysql.sql, bayes_mysql.sql, userpref_mysql.sql и меняем её на такую:

ENGINE=MyISAM;

Затем, благополучно выполняем команды:

mysql -p spamassassin < userpref_mysql.sql
mysql -p spamassassin < bayes_mysql.sql
mysql -p spamassassin < awl_mysql.sql

Всё, база для спамассассина готова. Но чтобы спамассассин умел ею пользоваться, надо создать дополнительный кофигурационный файл рядышком с local.cf. Называться он будет sql.cf, а его содержимое будет таким:

user_scores_dsn DBI:mysql:spamassassin:localhost
user_scores_sql_username spamassassin
user_scores_sql_password ваш пароль на базу
# если будете использовать плагин автоматического создания белого списка, то раскомментируйте эти строчки.
# auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList
# user_awl_dsn DBI:mysql:spamassassin:localhost
# user_awl_sql_username spamassassin
# user_awl_sql_password ваш пароль на базу
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin:localhost
bayes_sql_username spamassassin
bayes_sql_password ваш пароль на базу

Также, скрипт запуска надо будет переименовать. Найдите файл /usr/local/etc/rc.d/sa-spamd.
Его надо переименовать просто в spamd.

В файл /etc/rc.conf добавьте строчку, которая будет запускать спамассассин при загрузке:

spamd_enable="YES"

Сейчас, чтобы заработала связка postfix+dovecot+spamassassin, надо отредактировать последний файл /usr/local/etc/postfix/master.cf. В самом верху есть строчка:

smtp      inet  n       -       n       -       -       smtpd

К ней дописываем фильтр. Получится вот так:

smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=spamassassin

Затем надо раскомментировать вот эти строчки (также добавив к ним строчку с фильтром):

smtps     inet  n       -       n       -       -       smtpd
  -o content_filter=spamassassin
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

И в самый конец добавить вот такие строчки:

dovecot   unix  -    n    n   -   -    pipe
  flags=DRhu user=virtual:virtual argv=/usr/local/libexec/dovecot/deliver -d ${recipient}
spamassassin unix - n n - - pipe
    user=spamd argv=/usr/local/bin/spamc -f -e /usr/local/sbin/sendmail -oi -f ${sender} ${recipient}

Вот теперь, после всего этого длительного конфигурирования, перезагружаем сервер. Смотрим логи. У меня было всё в порядке, кроме одного — были вот такие уведомления:

no working DCC servers dcc1.dcc-servers.net dcc2.dcc-servers.net dcc3.dcc-servers.net ... at 209.169.14.30 80.91.36.101
dcc: instead of X-DCC header, dccproc returned 'no working DCC servers dcc1.dcc-servers.net dcc2.dcc-servers.net dcc3.dcc-servers.net ... at 209.169.14.30 80.91.36.101'

Чтобы это исправить нужно к серверу открыть порт UDP 6277:

add 00180 pass udp from any 6277 to me

Потом, перезапустив ipfw, выполнить вот такую команду:

cdcc "load /usr/local/dcc/map.txt"

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

postfix/smtpd[1547]: error: open database /usr/local/etc/aliases.db: No such file or directory

То делаем так:

rm -f /etc/aliases.db
mkdir /usr/local/etc/aliases
newaliases

Ещё, у меня была ошибка о том, что постфикс не может получить доступ к логу довекота. Особо разбираться не хотелось, потому просто сделал так:

chmod 666 /var/log/dovecot.log

После чего сервер заработал. Осталось лишь прикрутить вэб-интерфейс roundecube. Установим roundcube:

cd /usr/ports/mail/roundcube
make install clean

Опции сборки:

И сразу же получаем ошибку:

pecl-intl-1.1.2_3 cannot install: doesn't work with PHP version : 52 (Doesn't support PHP 4 52).

Исправить это легко. Находим файл /usr/ports/devel/pecl-intl/Makefile, а в нём находим строчку:

IGNORE_WITH_PHP=4 52

И изменяем её вот так:

IGNORE_WITH_PHP=4

Затем пробуем снова установить roundcube и получаем ещё одну ошибку:

/usr/bin/ld: Warning: size of symbol `datefmt_parse_args' changed from 160 in .libs/php_intl.o to 120 in dateformat/.libs/dateformat_class.o

Эту ошибку разрешаем вот такими действиями:

echo "LICENSES_ACCEPTED+=GPLv2" >> /etc/make.conf
cd /usr/ports/devel/pecl-intl/
make deinstall clean
make clean
rm ./files/*

После чего снова пробуем установить roundcube. В этот раз всё должно завершиться удачно, и в папке /usr/local/www мы увидим каталог roundcube. Но мне бы хотелось ещё установить дополнительную тему оформления. Внешний вид некоторых можно посмотреть вот тут:

http://www.w2a.ru/blog/684.html

Мне понравилась Air. Её и ставлю:

cd /usr/ports/mail/roundcube-air
make install clean

Теперь создадим mysql-базу для роундкуба:

mysql -p
CREATE DATABASE `roundcube` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost' IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Потом заходим в каталог /usr/local/www/roundcube/SQL и создаём таблицы в базе:

mysql roundcube -p < mysql.initial.sql

В своём случае, я хочу заходить в почту по адресу https://192.168.0.100/mail, поэтому я копирую всё содержимое каталога /usr/local/www/roundcube в каталог /usr/local/www/mysite/mail. Как я уже и говорил раньше, настройки вэб-сервера под джумлу прекрасно подошли и под roundcube. При этом, обязательно помню, что надо дать соответствующие права на этот каталог:

chown -R www:www mail

Затем, чтобы сделать начальное конфигурирование, захожу по адресу: http://192.168.0.100/mail/installer И если всё работает, то должна появиться вот такая картинка:

Жмём на strat installation. На второй страничке я увидел надпись Intl: NOT AVAILABLE. Тут, наверно, достаточно просто было перезапустить php-fpm, но я перезагрузил весь сервер, после чего установшик больше на это не жаловался.

На второй странице «Create config» я сделал вот такие настройки:

product_name: назовите как-нибудь заголовок вашей страницы
temp не трогал
ip_check не ставил галку
des_key не трогал
enable_caching не имеет смыла, т.к. Imap прямо на этом же сервере.
enable_spellcheck — да, проверку правописания включить
spellcheck_engine выбрал pspell, т.к. не хочу, чтоб моя переписка куда-то в гугл уходила.
identities_level оставил как есть
debug_level — галка Log errors
log_driver — file
log_dir — /var/log/roundcube
Database setup: прописываем нашу базу, логин и пароль к ней
default_host — 127.0.0.1
default_port — 143
username_domain — автоматическое добавление домена к логину пользователя. Пишем свой example.com
auto_create_user — галка стоит
sent_mbox, trash_mbox, drafts_mbox, junk_mbox — каталоги, что будут создаваться в вашем ящике. Я оставил по умолчанию.
smtp_server — 127.0.0.1
smtp_port — 25
smtp_user/smtp_pass не надо ничего вводить, т.к. SMTP-сервер у нас на этом же хосте
smtp_log — снял галку, т.к. хватает и постфиксовских логов.
Language — ru_RU
skin — air
skin_logo — тут можно загрузить лого-картинку вместо стандартной. Но у меня она не готова пока. Потом вручную подменю картинку...
pagesize не менял
prefer_html не менял (отображать сообщения в виде HTML по умолчанию)
preview_pane — поствил галку (отображать панель просмотра сообщений по умолчанию)
htmleditor — создавать сообщения в формате HTML только когда отвечаю на HTML сообщение (последний вариант выбрал)
draft_autosave — сохранение черновика каждые n минут. Я отключил.
mdn_requests — отправлять уведомление о прочтении. Не трогал — пусть меня спрашивает
mime_param_folding — выбрал для аутглюка.

В конце нажимаем кнопку «create config», после чего установщик предложит скачать два конфига и положить их в папку /usr/local/www/mysite/mail/config , что мы и сделаем. А после этого, нажимаем в установщике «continue». Нас перебросит на тестовую страничку, на которой можно протестировать smtp и imap.

ВНИМАНИЕ: если у вас не проходит тест imap, то проверьте настройки в соответствии с тем, как сказано тут:

http://unix4me.ru/archives/1204

Дублирую сюда эту информацию:

при настройке криптации пароля пользователя в связке Postfixadmin+Dovecot+Roundcube необходимо настроить:

В Postfixadmin — config.inc.php:

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

В Dovecot — 10-auth.conf:

auth_mechanisms = plain

Просто один plain без других видов криптации.

В Dovecot — dovecot-sql.conf.ext:

default_pass_scheme = MD5-CRYPT

В Roundcube — main.inc.php:

$rcmail_config['imap_auth_type'] = CRAM-MD5;

И не забываем создать каталог для логов:

mkdir /var/log/roundcube
chown www:www /var/log/roundcube

Если же все тесты прошли удачно, то давайте ещё немного подправим конфиг /usr/local/www/mysite/mail/config/main.inc.php вручную. Пишу лишь те строчки, что я подправил:

// Log session authentication errors to <log_dir>/session or to syslog. Записывать в лог неудачные попытки авторизоваться.
$rcmail_config['log_session'] = true;

// enforce connections over https. Принудительно переходить в https.
$rcmail_config['force_https'] = true;

// кодировать или нет IP-адрес и имя хоста. Пусть кодирует.
$rcmail_config['http_received_header_encrypt'] = true;

//автоматически создавать папки «входящие», «отправленные» и т.д. Новому пользователю.
$rcmail_config['create_default_folders'] = true;

//Если 0 у вас в системных квотах означает безлимит, ставим истину
$rcmail_config['quota_zero_as_unlimited'] = true;

Сохраняем конфиг и удаляем папку /usr/local/www/mysite/mail/installer Потом пробуем зайти на сервер http://192.168.0.100/mail При этом, вас должно перекинуть на https соединение. Попробуйте попользоваться почтой. Если всё сделали без ошибок, то почта должна работать.

07.06.2013 Добавлено:

После некоторого использования своего почтовика, выявилась одна проблема: когда кто-то шлёт письмо адресату, у которого есть алиас (псевдоним) на сервере, то на этот самый алиас приходит две копии письма. Проблема решается добавлением в конфиг master.cf вот такой строчки:

-o receive_override_options=no_address_mappings

добавляется она после строчки "-o content_filter=spamassassin"

Также была проблема, описанная вот тут:

http://forum.altlinux.org/index.php?topic=10538.0

Заключалась она в том, что если кто-то отправлял письмо на сразу два ящика моего сервера, то это письмо не доходило. Оно направлялось в отложенные письма. У меня она решилась добавлением в main.cf строчки:

dovecot_destination_recipient_limit = 1

При этом, по ссылке выше написано, что после её добавления начали вылазить какие-то ошибки при старте postfix. У меня же никаких ошибок не вылазило Смеюсь 

05.11.2014 Добавлено:

В последние несколько месяцев мой ящик, работающий на моём сервере, начали весьма активно спамить. При этом, spamassassin успешно весь этот спам распазнаёт и ставит метки **SPAM**. Но не удаляет его. Груды спама удалять приходилось вручную каждый раз. И мне это сильно надоело. Поэтому я решил сделать апгрэйд для своей почтовой системы Смеюсь. Задачи я себе поставил следующие:

- Система должна сама класть спамовые письма в папку спам.
- Письма, у которых спамовый балл зашкаливает, должны удаляться сразу.
- В вэб-интерфейсе должна появиться конопочка "пометить как спам" и "пометить как НЕ спам", которая помещает письма в папку СПАМ и убирает письма из этой папки, если они туда попали случайно.
- При этом, система как-то должна обращать внимание на помещаемые вручную письма в папку СПАМ и должна их обрабатывать и обучаться.

Собственно, и не так страшен чёрт, как его малюют. Оказалось, что с первыми двумя задачами отлично справляется почтовый фильтр procmail. А с последними двумя задачами отлично справляется плагин для roundcube, который называется markasjunk2.

Приступаем. Что касается procmail, то его настройку под FreeBSD я уже затрагивал в двух своих статьях:

http://technotrance.su/index.php/moi-stati/freebsd/item/23-mail-gateway-freebsd
http://technotrance.su/index.php/moi-stati/freebsd/item/25-mailgateway-addon

Но тут я систематизирую всю эту информацию с учётом некоторых тонкостей, которые возникли во время настройки. Всё по порядку. Ставим procmail:

cd /usr/ports/mail/procmail
make install clean

опции оставляем по умолчанию.
Затем, настроим постфикс на работу с procmail. В конфиге постфикса /usr/local/etc/postfix/main.cf находим строчку:

#mailbox_command = /some/where/procmail

и правим её вот так:

mailbox_command = /usr/local/bin/procmail

Затем, найдём строчку:

#mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

И исправим её на:

mailbox_transport = procmail

либо просто добавляем эту строчку ниже.
А ещё, после неё, добавим вот эту строчку:

procmail_destination_recipient_limit = 1

Теперь надо отредактировать файл /usr/local/etc/postfix/master.cf. В него надо добавить следующие строчки:

-o content_filter=procmail:

procmail unix - n n - - pipe flags=Rq user=virtual argv=/usr/local/bin/procmail -f SENDER=${sender} -t RECIPIENT=${recipient} -m USER=${user} DOMAIN=${domain} /usr/local/etc/procmailrc

Чтобы было более наглядно, я приведу весь свой конфиг master.cf и зелёным цветом выделю добавленные строчки, чтобы было видно, где их надо добавить и где закомментировать лишнее.

smtp      inet  n       -       n       -       -       smtpd
#  -o content_filter=spamassassin
  -o content_filter=procmail:
  -o receive_override_options=no_address_mappings
#smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -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 content_filter=spamassassin
  -o syslog_name=postfix/smtps
  -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
relay     unix  -       -       n       -       -       smtp
#       -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
#
dovecot   unix  -    n    n   -   -    pipe  flags=DRhu user=virtual:virtual argv=/usr/local/libexec/dovecot/deliver -d ${recipient}
spamassassin unix - n n - - pipe  user=spamd argv=/usr/local/bin/spamc -f -e /usr/local/sbin/sendmail -oi -f ${sender} ${recipient}
procmail unix - n n - - pipe flags=Rq user=virtual argv=/usr/local/bin/procmail -f SENDER=${sender} -t RECIPIENT=${recipient} -m USER=${user} DOMAIN=${domain} /usr/local/etc/procmailrc

И вот тут объясню некоторые тонкости:
Первая — это параметр user=virtual. Это потому, что procmail будет раскладывать письма в каталоги виртуальных пользователей postfix, а на них права есть только у пользователя virtual.
Второй важный момент — это параметры USER=${user} DOMAIN=${domain}, указанные после ключика -m. Он нужны, чтобы procmail понимал переменные $USER и $DOMAIN. Зачем они нужны, будет видно ниже в правилах procmail.

Далее, создаём файл /usr/local/etc/procmailrc и наполняем его вот таким содержимым:

MAILDIR=/usr/local/etc/postfix/procmail
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/procmail.lock
SHELL=/bin/sh
# отправляем письмо (которое меньше 512КБ) к спамассассину
:0fw
* <512000
| /usr/local/bin/spamc

# вырезаем спамовые письма и кладём в папку "спам", у которых балл от 5 до 7
:0H:
* ^.*----SPAM----.*$
* ^X-Spam-Level: \*\*\*\*(\*|\*\*|\*\*\*)$
/usr/home/vmail/$DOMAIN/$USER/Junk

# всё остальное, у чего балл выше, убиваем.
:0H
* ^.*----SPAM----.*$
* ^X-Spam-Level: \*\*\*\*\*\*\*.*$
/dev/null

# Хорошие же письма отправляем по месту назначения
:0H
* ^.*@mydomain\.domain.*$
! $RECIPIENT

# Последнее правило уничтожает всё остальное
:0
/dev/null

Думаю, что алгоритм обработки писем понятен из комментариев в конфиге.

Не забываем создать рабочий каталог для procmail ! Тот самый, который указали в конфиге постфикса master.cf:

mkdir /usr/local/etc/postfix/procmail
chown virtual:mail /usr/local/etc/postfix/procmail
chmod 770 /usr/local/etc/postfix/procmail

Вот теперь можно перезапускать postfix, чтобы все изменения вступили в силу:

service postfix restart

Теперь postfix будет получать письма, затем будет отдавать их на обработку в procmail, который, в свою очередь, будет отдавать их на проверку к спамассассину и уже после антиспамовой проверки будет направлять их далее: либо резать, либо в папку спам, либо во входящие к адресату.

В логе /usr/local/etc/postfix/procmail/procmail.log всё это дело будет наглядно отражаться. И если у вас спама реально много, то обязательно следует настроить ротацию этого лога. Чтобы это сделать, надо в файл /etc/newsyslog.conf добавить вот такую строчку:

/usr/local/etc/postfix/procmail/procmail.log virtual:mail 600 5 100 * JC

Только, лучше использовать знак табуляции между параметрами.

Теперь, что касается кнопки в вэб-интерфейсе. Сам я пользовался вот этой статьёй:

http://diskstation.ru/viewtopic.php?f=19&t=82

Итак, скачиваем плагин (в виде архива) для roundcube от сюда:

https://github.com/JohnDoh/Roundcube-Plugin-Mark-as-Junk-2/

И кладём содержимое этого архива в каталог plugins/markasjunk2, который внутри каталога с вашим roudcube. У меня это каталог /usr/home/www/mysite/mail/plugins/markasjunk2.

Теперь редактирую конфиг RoundCube home/www/mysite/mail/config/main.inc.php. Нахожу параметр:

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

и дописываю название папки плагина в список

$rcmail_config['plugins'] = array(markasjunk2);

если у вас уже стоят другие плагины, перечисляете их через запятую.

Далее надо отредактировать конфиг плагина. Открываю файл home/www/mysite/mail/plugins/markasjunk2/config.inc.php. Если файла "config.inc.php" нет, то надо создать его из исходного "config.inc.php.dist". Находим параметр:

$rcmail_config['markasjunk2_learning_driver'] = null;

и меняем значение на 'cmd_learn':

$rcmail_config['markasjunk2_learning_driver'] = 'cmd_learn';

дальше находим параметр:

$rcmail_config['markasjunk2_spam_cmd'] = null;

и меняем его на:

$rcmail_config['markasjunk2_spam_cmd'] = 'sa-learn --spam --no-sync --username=%u %f';

где %u - имя пользователя, %f - полный путь к письму. Таким образом мы 'sa-learn' указываем письмо %f как СПАМ, а эти настройки просим применить для пользователя %u.

Аналогично исправляем параметр:

$rcmail_config['markasjunk2_ham_cmd'] = null;

на:

$rcmail_config['markasjunk2_ham_cmd'] ='sa-learn --ham --no-sync --username=%u %f';

это обучит SpamAssassin пропускать нормальную почту.

Чтобы исправить проблему с кодировкой при возврате письма, отмеченного как СПАМ в первоначальный вид, надо сделать следующее: В конфиге роундкуба main.inc.php находим запись:

// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'ISO-8859-1';

И меняем в ней кодировку на UTF-8:

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

Также, выяснилось, что возврат письма, отмеченного как спам, работает некорректно. Письмо уходит куда-то налево, а не обратно во входящие. Проблема решилась поправкой в конфиге плагина config.inc.php вот этого параметра:

$config['markasjunk2_ham_mbox'] = inbox;

Прописал явно inbox маленькими буквами.

Ещё одна моя проблема заключалась в том, что у меня стоял старый RoundCube, ещё версии 0.7.2. И плагин markasjunk2 на этой версии роундкуба не работал. При открытии почты получал пустой белый экран.

Чтобы плагин заработал, пришлось обновить роундкуб до последней версии (1.0.3) Обновление прошло без проблем в целом... Скачал архив с новой версией и распаковал его содержимое в каталог, где у меня расположен мой текущий роундкуб 0.7.2, с заменой файлов. Конфиги, при этом, остались старые, и в них я ничего не менял.
Всё, что я подкрутил после этого — это обратно поменял skin на classic. Как-то он мне более привычен уже.

Этап 4. Настройка ФТП-сервера.

Перейти обратно на:
Этап 1
Этап 2

Прочитано 35117 раз Последнее изменение Понедельник, 24 Ноябрь 2014 20:32

Комментарии  

Рома
0 # Рома 10.09.2019 09:10
Заказ
Ответить
seosmmx
0 # seosmmx 14.09.2019 06:23
Мы исправим вашу ситуацию.
1. Устраним конкурентов в сети интернет.
2. Поднимем сайт в поиске

Плохие отзывы или у вас плохая репутация в сети?
И эту проблему решим быстро и легко.
1. Повысим рейтинг вашего интернет-магазина или ваших услуг.
2. Ваша репутация станет безупречной, кристольно чистой.

Хотите подарки и скидки? Без проблем!
Кроме услуг по продвижению у нас есть много того, что мы можем Вам предложить.
Подарки на выбор:
1. Разработка логотипа (3 варианта на выбор)
2. Разработка любого баннера
3. Разработка емайл-письма
4. Комерческое предложение
Скидки на:
- разработку презентации - 50% скидка (со скидкой - 500 руб./стр)
- разработку сайта на Битрикс и Битрикс24 - 30% скидка
- повторное обращение к нам за услугой - 30% скидка
- разработку лендинга - 50% скидка (со скидкой 5000 руб.)
Пишите точный вопрос, который вас заинтересовал в телеграм @seosmmx.
Ответить
AnnaSlerova
0 # AnnaSlerova 15.09.2019 19:05
Регистрируем и размещаем сайты в:
13500 каталогах.
200 сервисах социальных закладок.
2000 тематических статей со ссылкой на вас.

Готовы?
Продвигаем сайты в Яндекс и Гугл правильно.
Вам сюда topliv.com/?utm_source=g
Или пишите

Сайт продвинется в поиске.
Ответить
Dmitriy
0 # Dmitriy 15.09.2019 22:39
"Специалист РСЯ" Авторский курс Дмитрия Ивашинникова с учетом всех последних обновлений 2019 года
Гарантированный заработок по системе: посмотрел-повторил-заработал

* Без дополнительных вложений
* Курс подходит как новичкам, так и опытным маркетологам
* Помощь в поиске реальных заказчиков
* Подходит людям любого возраста
* Пошаговые видеоуроки

Записаться на бесплатный урок >>> bit.ly/KursRsa
Ответить
Елена
0 # Елена 16.09.2019 22:10
Прошу перезвонить
Ответить
zevs
0 # zevs 25.09.2019 05:52
The writer's name is Jaime. What I love doing is kit
cars and now i'm trying to generate money with the idea.
Dispatching is what he has been doing. My wife when compared
to chose to reside Montana. He's not godd at design but you're want to check his website: potenzmittel-online-bestellen-de.eu/zevs.html
Ответить
deseo
0 # deseo 27.09.2019 03:59
Hello dear visitor. I'm Valentin. Acting is the hobby she'll
never stop doing. My wife what goes on chose to reside in New
York and I've everything we need appropriate. Auditing has been his regular job for a short time.
I am running and maintaining a blog here: penisznovelo-eljarasok-hu.eu/deseo.html
Ответить
Дмитрий
0 # Дмитрий 27.09.2019 07:45
Привлекаем клиентов в Ваш бизнес, с помощью рассылки в формы обратной связи сайтов.

В наличии несколько баз, суммарным объемом более 5 млн сайтов СНГ.
Предоставляем скриншоты, подтверждающие выполнение обязательств с нашей стороны.

Приятные цены - нам выгодно, чтобы заказчик получал прибыль, значительно превышающую стоимость рассылки и обращался повторно.

В отличии от большинства наших конкурентов, оплату берем ТОЛЬКО за УСПЕШНО доставленные сообщения.
Напишите пожалуйста ответ на нашу почту:
Если Вам удобнее другой способ связи, напишите на почту, какой именно.

P.S. Извините за беспокойство, если мы с Вами уже сотрудничаем.
Ответить
Erogan
0 # Erogan 27.09.2019 10:18
The author is known by title of Patsy Gold it isn't
quite is not her birth name. My house is now cannabis and in no way move.
To climb could be the hobby she is going to
never stop doing. Meter reading is what she does for a living.

If you want to be told more check out my website: tabletkinapotencje2017.ovh/erogan.html
Ответить
tonus fortis
0 # tonus fortis 01.10.2019 10:02
Greetings. Permit me to start by telling you the author's name - Rico and he
totally digs that manufacturer. Data processing is the place
I support my in addition to the salary has been really extremely rewarding.
The favorite hobby for the children and me is to resolve puzzles having said that i
can't allow it to my profession really. Montana is where I've always been living.
Check out my website here: potens-piller-se.eu/tonus-fortis.html
Ответить
Nonacne
0 # Nonacne 01.10.2019 21:26
Greetings. The author's name is Santiago Vos but he doesn't like men and women use his
full moniker. Colorado is her birth place but
she could have to move one day or the next. He is really fond of body building and now he has time to
battle new important subjects. Meter reading is my employment now but
soon I'm going to be on mine. Her husband and her maintain an online.
You may want to check it out: aknen-hoito-fi.eu/
Ответить
Kennethesosy
0 # Kennethesosy 03.10.2019 04:01
купить элитный алкоголь:
с завода абсолют тащут,точно знаю,очень даже качественное все!
i.ytimg.com/vi/wEsFQjHgQMM/hqdefault.jpg:
заводов настроили,вот и много стало!
купить алкоголь в санкт петербурге:
а вот с ливиза и не слышал,но можно и нарваться на бодягу! знай у кого берешь!Алкоголь в канистрах спб.
i.ytimg.com/vi/Ya0ch_R_Efw/hqdefault.jpg:
купить алкоголь в канистрах спб:
Более 200 ТВ-каналов, тысячи фильмов и сериалов в одном приложении.
купить алкоголь в канистрах спб: - Алкоголь в канистрах в спб.
izgr.ru/.../60766_boards_1437665165.jpg:
Цифровые услуги и сервисы для вашей семьи.
Ответить
Boruics301Porgono
0 # Boruics301Porgono 08.10.2019 03:31
Многоуважаемый владелец, typical-admin.ru !
Есть возможность заказать уникальную кредитную карту тут - cutt.us/jyB6aG?IqdSv
Почему уникальная? Да потому что такие условия вы больше нигде не найдёте! 100 дней без процентов, доставка до квартиры, никуда ходить не надо, лимит 500 000р., выдают 100% ВСЕМ! Просто заказать на сайте! Спешите! Время акции ограничено!
Всегда ваш, boroixus
Ответить
Кристина
0 # Кристина 12.10.2019 13:33
Мобильный
Ответить
Лена
0 # Лена 12.10.2019 21:08
Привет!
Ответить
Юлия
0 # Юлия 14.10.2019 14:12
Домашний телефон
Ответить
Вероника
0 # Вероника 14.10.2019 19:04
89687715207
Ответить
Адвокат Юрист
0 # Адвокат Юрист 20.10.2019 02:18
Адвокат Юрист. Консультация бесплатно
Помощь опытного адвоката по уголовным, гражданским, административным и хозяйственным делам делам.
Работаю на результат.

lawyer-1014.business.site/
Ответить
Cryptofarmer game
0 # Cryptofarmer game 21.10.2019 03:17
Cryptofarmer game
Ответить
Евгений
0 # Евгений 03.11.2019 09:27
Привлекаем клиентов в Ваш бизнес, с помощью рассылки в формы обратной связи сайтов.

В наличии несколько баз, суммарным объемом более 5 млн сайтов СНГ.
Предоставляем скриншоты, подтверждающие выполнение обязательств с нашей стороны.

Приятные цены - нам выгодно, чтобы заказчик получал прибыль, значительно превышающую стоимость рассылки и обращался повторно.

В отличии от большинства наших конкурентов, оплату берем ТОЛЬКО за УСПЕШНО доставленные сообщения.
Напишите пожалуйста ответ на нашу почту:
Если Вам удобнее другой способ связи, напишите на почту, какой именно.

P.S. Извините за беспокойство, если мы с Вами уже сотрудничаем.
Ответить
Леонид
0 # Леонид 06.11.2019 20:21
Здравствуйте! Звоните на 89253042771
Ответить
Kino21
0 # Kino21 07.11.2019 05:31
kino1
Ответить
Леонид
0 # Леонид 07.11.2019 07:04
Телефон
Ответить
Александр
0 # Александр 10.11.2019 22:58
Привлекаем клиентов в Ваш бизнес, с помощью рассылки в формы обратной связи сайтов.

В наличии несколько баз, суммарным объемом более 5 млн сайтов СНГ.
Предоставляем скриншоты, подтверждающие выполнение обязательств с нашей стороны.

Приятные цены - нам выгодно, чтобы заказчик получал прибыль, значительно превышающую стоимость рассылки и обращался повторно.

В отличии от большинства наших конкурентов, оплату берем ТОЛЬКО за УСПЕШНО доставленные сообщения.
Напишите пожалуйста ответ на нашу почту:
Если Вам удобнее другой способ связи, напишите на почту, какой именно.

P.S. Извините за беспокойство, если мы с Вами уже сотрудничаем.
Ответить
BarbaraDok
0 # BarbaraDok 11.11.2019 15:49
Добрый день
Рекомендуют врачи
Препараты для лечения онко заболеваний


алеценза алектиниб инструкция +по применению: velpanex.ru/shop/22/desc/alecnib
Ответить
Анастасия
0 # Анастасия 11.11.2019 22:25
Прошу перезвонить
Ответить
Алмаз
0 # Алмаз 13.11.2019 05:43
Звонить до 23 00
Ответить
Светлана
0 # Светлана 14.11.2019 12:50
Заказать звонок
Ответить
isaeva
0 # isaeva 23.11.2019 10:31
Набираю команду в Poй-Kлуб vk.cc/a1Wh0k
Доход в клубе 24—29,99% в месяц, успей!
Ответить
LadonnaNend
0 # LadonnaNend 25.11.2019 13:11
see more

TDS-bestseller- bit.ly/2lnKsep#tSWDywB8CK

VDS-bestseller- u.to/jEhjFg#u7Q5qM56KZ
____________________________________
18+/
new-gambling.tk
new-dating-app.tk
new-binary-crypto-trayding.tk
Ответить
Надюша
0 # Надюша 26.11.2019 21:02
Заказать звонок
Ответить
Евгений
0 # Евгений 26.11.2019 22:21
Привлекаем клиентов в Ваш бизнес, с помощью рассылки в формы обратной связи сайтов.

В наличии несколько баз, суммарным объемом более 5 млн сайтов СНГ.
Предоставляем скриншоты, подтверждающие выполнение обязательств с нашей стороны.

Приятные цены - нам выгодно, чтобы заказчик получал прибыль, значительно превышающую стоимость рассылки и обращался повторно.

В отличии от большинства наших конкурентов, оплату берем ТОЛЬКО за УСПЕШНО доставленные сообщения.
Напишите пожалуйста ответ на нашу почту:
Если Вам удобнее другой способ связи, напишите на почту, какой именно.

P.S. Извините за беспокойство, если мы с Вами уже сотрудничаем.
Ответить
Кирилл
0 # Кирилл 28.11.2019 06:44
Обратный звонок
Ответить
abidexin sklad
0 # abidexin sklad 30.11.2019 15:06
Amazing Web page, Continue the wonderful job.

Thanks.
Ответить
Артемий
0 # Артемий 30.11.2019 22:23
79267663909
Ответить
Рустам
0 # Рустам 01.12.2019 09:37
Заказ
Ответить
Charlesgrify
0 # Charlesgrify 02.12.2019 06:34
Жизнь с запущенным раком простаты может быть подавляющей. Важно понимать как болезнь, так и ваше лечение, чтобы вы могли принимать активное участие в принятии решений о вашем лечении.
Если уровень простат-специфического антигена (ПСА) постоянно повышается во время лечения, которое снижает уровень тестостерона, это может означать, что ваш рак простаты прогрессирует. Прогрессирование означает, что рак ухудшается или распространяется.

Когда это произойдет, ваше лечение может измениться. Вот почему ваш врач может назначить XTANDI - лечение, которое может помочь замедлить прогрессирование.


энзалутамид аналоги: www.xtandi.ru/.../0-5
Ответить
Мария
0 # Мария 02.12.2019 08:36
Мобильник
Ответить
Вячеслав
0 # Вячеслав 06.12.2019 03:55
Здравствуйте!
Вам нужны новые клиенты?
Привлекаем клиентов в Ваш бизнес, с помощью рассылки в формы обратной связи.

Несколько преимуществ работы с нами:

- Приятные цены - нам выгодно, чтобы заказчик получал прибыль, значительно превышающую стоимость рассылки и обращался повторно.

- Все максимально прозрачно:
Предоставим скриншоты из программы, с подробными отчетами о результатах рассылки, подтверждающие выполнение обязательств с нашей стороны.

- В отличии от большинства наших конкурентов, оплата ТОЛЬКО за УСПЕШНО доставленные сообщения.

Заинтересовало?
Свяжитесь с нами в течении суток и в качестве бонуса, получите бесплатное составление оффера для Вашей рассылки!
Наш E-mail:

P.S. Извините за беспокойство, если мы с Вами уже сотрудничаем.
Ответить

Добавить комментарий

Защитный код
Обновить

Вы здесь: Home Мои статьи FreeBSD Настройка домашнего сервера, выполняющего роли веб-сервера, почтового сервера и фтп-сервера. Этап 3.