Почтовые системы · 19 min read · Jan 29, 2026

Виртуальные пользователи и домены с Postfix, Courier, MySQL и SquirrelMail (Ubuntu 13.10) - Страница 2

11 Уведомления о превышении квоты

Если вы хотите получать уведомления обо всех учетных записях электронной почты, которые превышают квоту, создайте файл /usr/local/sbin/quota_notify:

cd /usr/local/sbin/  
vi quota_notify

| #!/usr/bin/perl -w # Автор <[email protected]> # # Этот скрипт предполагает, что virtual_mailbox_base определен # в файле main.cf postfix. Предполагается, что этот каталог содержит # каталоги, которые сами содержат почтовые директории ваших виртуальных пользователей. # Например: # # -----------/ # | # | # home/vmail/domains/ # | | # | | # example.com/ foo.com/ # | # | # ----------------- # | | | # | | | # user1/ user2/ user3/ # | # | # maildirsize # use strict; my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'Моя компания'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; #get virtual mailbox base from postfix config open(PCF, "< $POSTFIX_CF") or die $!; my $mboxBase; while () { next unless /virtual_mailbox_base\s*=\s*(.*)\s*/; $mboxBase = $1; } close(PCF); #assume one level of subdirectories for domain names my @domains; opendir(DIR, $mboxBase) or die $!; while (defined(my $name = readdir(DIR))) { next if $name =~ /^\.\.?$/; #skip '.' and '..' next unless (-d "$mboxBase/$name"); push(@domains, $name); } closedir(DIR); #iterate through domains for username/maildirsize files my @users; chdir($mboxBase); foreach my $domain (@domains) { opendir(DIR, $domain) or die $!; while (defined(my $name = readdir(DIR))) { next if $name =~ /^\.\.?$/; #skip '.' and '..' next unless (-d "$domain/$name"); push(@users, {"$name\@$domain" => "$mboxBase/$domain/$name"}); } } closedir(DIR); #get user quotas and percent used my (%lusers, $report); foreach my $href (@users) { foreach my $user (keys %$href) { my $quotafile = "$href->{$user}/maildirsize"; next unless (-f $quotafile); open(QF, "< $quotafile") or die $!; my ($firstln, $quota, $used); while () { my $line = $_; if (! $firstln) { $firstln = 1; die "Ошибка: поврежденный quotafile $quotafile" unless ($line =~ /^(\\d+)S/); $quota = $1; last if (! $quota); next; } die "Ошибка: поврежденный quotafile $quotafile" unless ($line =~ /\s*(-?\d+)/); $used += $1; } close(QF); next if (! $used); my $percent = int($used / $quota * 100); $lusers{$user} = $percent unless not $percent; } } #send a report to the postmasters if ($MAIL_REPORT) { open(MAIL, "| $MAILPROG"); select(MAIL); map {print "To: $_\n"} @POSTMASTERS; print "From: $COADDR\n"; print "Subject: Ежедневный отчет по квоте.\n"; print "ЕЖЕДНЕВНЫЙ ОТЧЕТ ПО КВОТЕ:\n\n"; print "----------------------------------------------\n"; print "| % ИСПОЛЬЗОВАНИЯ | ИМЯ УЧЕТНОЙ ЗАПИСИ |\n"; print "----------------------------------------------\n"; foreach my $luser ( sort { $lusers{$b} <=> $lusers{$a} } keys %lusers ) { printf("| %3d | %32s |\n", $lusers{$luser}, $luser); print "---------------------------------------------\n"; } print "\n--\n"; print "$CONAME\n"; close(MAIL); } #email a warning to people over quota if ($MAIL_WARNING) { foreach my $luser (keys (%lusers)) { next unless $lusers{$luser} >= $WARNPERCENT; # skip those under quota open(MAIL, "| $MAILPROG"); select(MAIL); print "To: $luser\n"; map {print "BCC: $_\n"} @POSTMASTERS; print "From: $SUADDR\n"; print "Subject: ПРЕДУПРЕЖДЕНИЕ: Ваша почтовая ящик заполнен на $lusers{$luser}%.\n"; print "Reply-to: $SUADDR\n"; print "Ваш почтовый ящик: $luser заполнен на $lusers{$luser}%.\n\n"; print "Как только ваш почтовый ящик превысит вашу месячную квоту хранения\n"; print "ваше ежемесячное выставление счета будет автоматически скорректировано.\n"; print "Пожалуйста, подумайте о том, чтобы удалить электронные письма и очистить вашу папку с мусором, чтобы освободить место.\n\n"; print "Свяжитесь с <$SUADDR> для получения дополнительной помощи.\n\n"; print "Спасибо.\n\n"; print "--\n"; print "$CONAME\n"; close(MAIL); } } |

Убедитесь, что вы настроили переменные вверху (особенно адрес электронной почты [email protected]).

Мы должны сделать файл исполняемым:

chmod 755 quota_notify

Запустите

crontab -e

чтобы создать задачу cron для этого скрипта:

| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |

12 Тестирование Postfix

Чтобы проверить, готов ли Postfix к SMTP-AUTH и TLS, выполните

telnet localhost 25

После того, как вы установили соединение с вашим почтовым сервером Postfix, введите

ehlo localhost

Если вы видите строки

250-STARTTLS

и

250-AUTH PLAIN LOGIN

все в порядке:

root@server1:/usr/local/sbin# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.localdomain.
Escape character is ‘^]’.
220 server1.example.com ESMTP Postfix (Ubuntu)
<– ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
<– quit
221 2.0.0 Bye
Connection closed by foreign host.
root@server1:/usr/local/sbin#

Введите

quit

чтобы вернуться к командной строке системы.

13 Заполнение базы данных и тестирование

Чтобы заполнить базу данных, вы можете использовать оболочку MySQL:

mysql -u root -p
USE mail;

По крайней мере, вам нужно создать записи в таблицах domains и users:

INSERT INTO `domains` (`domain`) VALUES ('example.com');  
INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('[email protected]', ENCRYPT('secret'), 10485760);

(Пожалуйста, убедитесь, что вы используете синтаксис ENCRYPT во втором операторе INSERT, чтобы зашифровать пароль!)

Если вы хотите сделать записи в других двух таблицах, это будет выглядеть так:

INSERT INTO `forwardings` (`source`, `destination`) VALUES ('[email protected]', '[email protected]');  
INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');

Чтобы выйти из оболочки MySQL, введите

quit;

Для большинства людей проще, если у них есть графический интерфейс для MySQL; поэтому вы также можете использовать phpMyAdmin (в этом примере по адресу http://192.168.0.100/phpmyadmin/ или http://server1.example.com/phpmyadmin/) для администрирования базы данных mail. Снова, когда вы создаете пользователя, убедитесь, что вы используете функцию ENCRYPT для шифрования пароля:

Я не думаю, что мне нужно объяснять таблицы доменов и пользователей дальше.

Таблица переадресации может иметь записи, подобные следующим:

sourcedestination
[email protected][email protected]Перенаправляет электронные письма для [email protected] на [email protected]
@example.com[email protected]Создает учетную запись Catch-All для [email protected]. Все электронные письма на example.com будут приходить на [email protected], за исключением тех, которые существуют в таблице пользователей (т.е. если [email protected] существует в таблице пользователей, письма на [email protected] все равно будут приходить на [email protected]).
@example.com@anotherdomain.tldЭто перенаправляет все электронные письма на example.com тому же пользователю на anotherdomain.tld. Например, письма на [email protected] будут перенаправлены на [email protected].
[email protected][email protected], [email protected]Перенаправляет электронные письма для [email protected] на два или более адресов электронной почты. Все указанные адреса электронной почты в поле назначения получают копию письма.

Таблица транспортировки может иметь записи, подобные этим:

domaintransport
example.com:Доставляет электронные письма для example.com локально. Это как если бы этой записи вообще не существовало в этой таблице.
example.comsmtp:mail.anotherdomain.tldДоставляет все электронные письма для example.com через smtp на сервер mail.anotherdomain.com.
example.comsmtp:mail.anotherdomain.tld:2025Доставляет все электронные письма для example.com через smtp на сервер mail.anotherdomain.com, но на порту 2025, а не 25, который является стандартным портом для smtp.

| example.com | smtp:[1.2.3.4]
smtp:[1.2.3.4]:2025
smtp:[mail.anotherdomain.tld] | Квадратные скобки предотвращают выполнение Postfix поиска записей MX DNS для адреса в квадратных скобках. Имеет смысл для IP-адресов. | | .example.com | smtp:mail.anotherdomain.tld | Почта для любого поддомена example.com доставляется на mail.anotherdomain.tld. | | * | smtp:mail.anotherdomain.tld | Все электронные письма доставляются на mail.anotherdomain.tld. | | [email protected] | smtp:mail.anotherdomain.tld | Электронные письма для [email protected] доставляются на mail.anotherdomain.tld. |

Смотрите

man transport

для получения дополнительных сведений.

Пожалуйста, имейте в виду, что порядок записей в таблице транспортировки важен! Записи будут следовать сверху вниз.

Важно: Postfix использует механизм кэширования для транспортов, поэтому может пройти некоторое время, прежде чем изменения в таблице транспортировки вступят в силу. Если вы хотите, чтобы они вступили в силу немедленно, выполните

postfix reload

после того, как вы внесли изменения в таблицу транспортировки.

14 Отправка приветственного письма для создания Maildir

Когда вы создаете новую учетную запись электронной почты и пытаетесь получить электронные письма из нее (с помощью POP3/IMAP), вы, вероятно, получите сообщения об ошибках, говорящие о том, что Maildir не существует. Maildir создается автоматически, когда первое электронное письмо приходит для новой учетной записи. Поэтому хорошей идеей будет отправить приветственное письмо на новую учетную запись.

Сначала мы устанавливаем пакет mailx:

apt-get install mailutils

Чтобы отправить приветственное письмо на [email protected], мы делаем это:

mailx [email protected]

Вас попросят ввести тему. Введите тему (например, Приветствие), затем нажмите ENTER, а в следующей строке введите ваше сообщение. Когда сообщение будет завершено, нажмите ENTER еще раз, чтобы перейти на новую строку, затем нажмите CTRL+D; если вы не хотите отправлять копию письма, нажмите ENTER еще раз:

root@server1:/usr/local/sbin# mailx [email protected]
Cc: <– ENTER
Subject: Приветствие <– ENTER
Добро пожаловать! Наслаждайтесь вашей новой учетной записью электронной почты. <– ENTER
<– CTRL+D
root@server1:/usr/local/sbin#

 Примечание: Пожалуйста, не добавляйте транспорт и почтовый ящик для одного и того же адреса.

15 Установка SquirrelMail

SquirrelMail - это веб-интерфейс для электронной почты, который позволит вашим пользователям отправлять и получать электронные письма в браузере. Эта глава показывает, как установить его и настроить под нашу конфигурацию, чтобы пользователи могли даже изменять пароль своей учетной записи электронной почты через интерфейс SquirrelMail.

Чтобы установить SquirrelMail, мы выполняем:

apt-get install squirrelmail squirrelmail-compatibility php-pear php-db

Затем мы создаем символическую ссылку на конфигурацию Apache, которая идет с пакетом SquirrelMail, в директорию /etc/apache2/conf-available и перезапускаем Apache:

ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf-available/squirrelmail.conf  
/etc/init.d/apache2 restart

SquirrelMail поставляется с некоторыми предустановленными плагинами, к сожалению, ни один из них не может позволить нам изменить пароль электронной почты в нашей базе данных MySQL. Но есть плагин Change SQL Password, который мы можем установить вручную:

cd /usr/share/squirrelmail/plugins  
wget http://www.squirrelmail.org/plugins/change_sqlpass-3.3-1.2.tar.gz  
tar xvfz change_sqlpass-3.3-1.2.tar.gz  
cd change_sqlpass  
cp config.php.sample config.php

Теперь мы должны отредактировать config.php и настроить его под нашу конфигурацию. Пожалуйста, настройте переменные $csp_dsn, $lookup_password_query, $password_update_queries, $password_encryption, $csp_salt_static и $csp_delimiter следующим образом и закомментируйте $csp_salt_query:

vi config.php

| [...] $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; [...] $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4'; [...] $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"'); [...] $password_encryption = 'MYSQLENCRYPT'; [...] $csp_salt_static = 'LEFT(password, 2)'; [...] //$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"'; [...] $csp_delimiter = '@'; [...] |

Полный файл выглядит следующим образом:

| * 2002-2005 Пол Леснейвски <[email protected]> * Эта программа лицензируется по GPL. См. COPYING для подробностей * * @package plugins * @subpackage Change SQL Password * */ // Глобальные переменные, не трогайте их, если не хотите сломать плагин // global $csp_dsn, $password_update_queries, $lookup_password_query, $force_change_password_check_query, $password_encryption, $csp_salt_query, $csp_salt_static, $csp_secure_port, $csp_non_standard_http_port, $csp_delimiter, $csp_debug, $min_password_length, $max_password_length, $include_digit_in_password, $include_uppercase_letter_in_password, $include_lowercase_letter_in_password, $include_nonalphanumeric_in_password; // csp_dsn // // Теоретически, любая SQL база данных, поддерживаемая Pear, должна поддерживаться // здесь. DSN (имя источника данных) должен содержать информацию, необходимую // для подключения к вашему бэкенду базы данных. Пример для MySQL приведен ниже. // Для получения дополнительных сведений о синтаксисе DSN и списке поддерживаемых типов баз данных, // пожалуйста, смотрите: // http://pear.php.net/manual/en/package.database.db.intro-dsn.php // //$csp_dsn = 'mysql://user:password@localhost/email_users'; $csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; // lookup_password_query // // Этот плагин всегда будет проверять старый пароль пользователя // по сравнению с их паролем для входа, но дополнительная проверка также // может быть выполнена по базе данных для большей безопасности, если вы // этого хотите. Если вам не нужна дополнительная проверка пароля, // убедитесь, что эта настройка пуста. // // Это запрос, который возвращает положительное значение, если пользователь // и пара пароль найдены в базе данных. // // Этот запрос должен вернуть одно значение (один ряд, один столбец), значение // должно быть идеальным образом 1 или 0, просто указывая, что // пара пользователь/пароль действительно существует в базе данных. // // %1 в этом запросе будет заменен полным именем пользователя // (включая домен), таким как "[email protected]" // %2 в этом запросе будет заменен именем пользователя (без // какой-либо части домена), таким как "jose" // %3 в этом запросе будет заменен именем домена, // таким как "example.com" // %4 в этом запросе будет заменен текущим (старым) // паролем в любом формате шифрования, необходимом в соответствии с другими // настройками конфигурации плагина (Обратите внимание, что синтаксис // пароля будет предоставлен в зависимости от ваших выборов шифрования, так что вы НИКОГДА // не должны предоставлять кавычки вокруг этого значения в запросе здесь.) // %5 в этом запросе будет заменен текущим (старым) // паролем в нешифрованном виде. Если вы не используете никакого // шифрования пароля, %4 и %5 будут одинаковыми значениями, // за исключением того, что %4 будет в двойных кавычках, а %5 - нет. // //$lookup_password_query = ''; // УЖАСНАЯ БЕЗОПАСНОСТЬ: $lookup_password_query = 'SELECT count(*) FROM users WHERE username = "%1" AND plain_password = "%5"'; //$lookup_password_query = 'SELECT count(*) FROM users WHERE username = "%1" AND crypt_password = %4'; $lookup_password_query = 'SELECT count(*) FROM users WHERE email = "%1" AND password = %4'; // password_update_queries // // Массив SQL запросов, которые будут выполнены // всякий раз, когда происходит попытка изменения пароля. // // Здесь может быть любое количество запросов. // Запросы будут выполняться в порядке, указанном здесь. // // %1 в всех запросах будет заменен полным именем пользователя // (включая домен), таким как "[email protected]" // %2 в всех запросах будет заменен именем пользователя (без // какой-либо части домена), таким как "jose" // %3 в всех запросах будет заменен именем домена, // таким как "example.com" // %4 в всех запросах будет заменен новым паролем // в любом формате шифрования, необходимом в соответствии с другими // настройками конфигурации плагина (Обратите внимание, что синтаксис // пароля будет предоставлен в зависимости от ваших // выборов шифрования, так что вы НИКОГДА не должны предоставлять кавычки // вокруг этого значения в запросах здесь.) // %5 в всех запросах будет заменен новым паролем // в нешифрованном виде - ОСТОРОЖНО! Если вы не используете // никакого шифрования пароля, %4 и %5 будут одинаковыми // значениями, за исключением того, что %4 будет в двойных кавычках // а %5 - нет. // //$password_update_queries = array( // 'UPDATE users SET crypt_password = %4 WHERE username = "%1"', // 'UPDATE user_flags SET force_change_pwd = 0 WHERE username = "%1"', // 'UPDATE users SET crypt_password = %4, force_change_pwd = 0 WHERE username = "%1"', // ); $password_update_queries = array('UPDATE users SET password = %4 WHERE email = "%1"'); // force_change_password_check_query // // Запрос, который проверяет наличие флага, указывающего, должен ли пользователь // быть вынужден изменить свой пароль. Этот запрос // должен вернуть одно значение (один ряд, один столбец), которое // равно нулю, если пользователю НЕ нужно менять свой пароль, // или единице, если пользователь должен быть вынужден сделать это сейчас. // // Эта настройка должна быть пустой строкой, если вы не хотите // включать эту функциональность. // // %1 в этом запросе будет заменен полным именем пользователя // (включая домен), таким как "[email protected]" // %2 в этом запросе будет заменен именем пользователя (без // какой-либо части домена), таким как "jose" // %3 в этом запросе будет заменен именем домена, // таким как "example.com" // //$force_change_password_check_query = 'SELECT IF(force_change_pwd = "yes", 1, 0) FROM users WHERE username = "%1"'; //$force_change_password_check_query = 'SELECT force_change_pwd FROM users WHERE username = "%1"'; $force_change_password_check_query = ''; // password_encryption // // Какой метод шифрования вы используете для хранения паролей // в вашей базе данных? Пожалуйста, используйте один из следующих, // точно так, как вы его видите: // // NONE Пароли хранятся только в открытом виде // MYSQLPWD Пароли хранятся с использованием функции MySQL password() // MYSQLENCRYPT Пароли хранятся с использованием функции MySQL encrypt() // PHPCRYPT Пароли хранятся с использованием функции PHP crypt() // MD5CRYPT Пароли хранятся с использованием зашифрованного алгоритма MD5 // MD5 Пароли хранятся как хэш MD5 // //$password_encryption = 'MYSQLPWD'; $password_encryption = 'MYSQLENCRYPT'; // csp_salt_query // csp_salt_static // // Типы шифрования, которые требуют соли, должны знать, откуда взять // эту соль. Если у вас есть постоянное, известное значение соли, вы // должны определить его в $csp_salt_static. В противном случае оставьте это // значение пустым и определите значение для $csp_salt_query. // // Оставьте оба значения пустыми, если вам не нужно (или не используете) соли // для шифрования ваших паролей. // // Запрос должен вернуть одно значение (один ряд, один столбец), которое // является значением соли для пароля текущего пользователя. Этот // запрос игнорируется, если $csp_salt_static не пуст. // // %1 в этом запросе будет заменен полным именем пользователя // (включая домен), таким как "[email protected]" // %2 в этом запросе будет заменен именем пользователя (без // какой-либо части домена), таким как "jose" // %3 в этом запросе будет заменен именем домена, // таким как "example.com" // //$csp_salt_static = 'LEFT(crypt_password, 2)'; //$csp_salt_static = '"a4"'; // используйте этот формат с MYSQLENCRYPT //$csp_salt_static = '$2$blowsomefish$'; // используйте этот формат с PHPCRYPT //$csp_salt_static = ''; $csp_salt_static = 'LEFT(password, 2)'; //$csp_salt_query = 'SELECT SUBSTRING_INDEX(crypt_password, '$', 1) FROM users WHERE username = "%1"'; //$csp_salt_query = 'SELECT SUBSTRING(crypt_password, (LENGTH(SUBSTRING_INDEX(crypt_password, '$', 2)) + 2)) FROM users WHERE username = "%1"'; //$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"'; //$csp_salt_query = ''; // csp_secure_port // // Вы можете убедиться, что используется шифрование SSL во время пароля // изменения, установив это на порт, на котором обслуживается ваш HTTPS // (443 - это типично). Установите в ноль, если вы не хотите принудить // соединение HTTPS, когда пользователи меняют свои пароли. // // Вы можете переопределить это значение для определенных доменов, пользователей или // уровней обслуживания через плагин Виртуальный Хост Входа (vlogin), // установив значение(я) для $vlogin_csp_secure_port в конфигурации vlogin. // $csp_secure_port = 0; //$csp_secure_port = 443; // csp_non_standard_http_port // // Если вы обслуживаете стандартные HTTP веб-запросы на нестандартном // порту (все, кроме порта 80), вы должны указать этот // номер порта здесь. Установите в ноль в противном случае. // // Вы можете переопределить это значение для определенных доменов, пользователей или // уровней обслуживания через плагин Виртуальный Хост Входа (vlogin), // установив значение(я) для $vlogin_csp_non_standard_http_port // в конфигурации vlogin. // //$csp_non_standard_http_port = 8080; $csp_non_standard_http_port = 0; // min_password_length // max_password_length // include_digit_in_password // include_uppercase_letter_in_password // include_lowercase_letter_in_password // include_nonalphanumeric_in_password // // Вы можете установить минимальную и максимальную длину паролей, которые // вы принимаете, или оставить эти настройки равными нулю, чтобы указать, что // никаких ограничений не должно применяться. // // Включите любые другие настройки здесь, чтобы проверить, что новый // пароль содержит хотя бы одну цифру, заглавную букву, // строчную букву и/или один неалфавитный символ. // $min_password_length = 6; $max_password_length = 0; $include_digit_in_password = 0; $include_uppercase_letter_in_password = 0; $include_lowercase_letter_in_password = 0; $include_nonalphanumeric_in_password = 0; // csp_delimiter // // если в вашей системе есть имена пользователей с чем-то другим, чем // знак "@", разделяющий часть пользователя и домена, // укажите этот символ здесь // //$csp_delimiter = '|'; $csp_delimiter = '@'; // режим отладки // $csp_debug = 0; ?> |

Теперь мы должны перейти в конфигурацию SquirrelMail и сказать SquirrelMail, что мы используем Courier в качестве нашего POP3 и IMAP сервера и включить плагины Change SQL Password и Compatibility:

/usr/sbin/squirrelmail-configure

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

Конфигурация SquirrelMail : Чтение: config.php (1.4.0)

Главное меню –

  1. Предпочтения организации
  2. Настройки сервера
  3. Папки по умолчанию
  4. Общие параметры
  5. Темы
  6. Адресные книги
  7. Сообщение дня (MOTD)
  8. Плагины
  9. База данных
  10. Языки

D. Установить предопределенные настройки для конкретных IMAP серверов

C Включить цвет
S Сохранить данные
Q Выйти

Команда >> <– D

Конфигурация SquirrelMail : Чтение: config.php

Пока мы строили SquirrelMail, мы обнаружили некоторые
предпочтения, которые работают лучше с некоторыми
серверами, которые не работают так
хорошо с другими. Если вы выберете свой
IMAP сервер, эта опция
установит некоторые предопределенные
настройки для этого сервера.

Пожалуйста, обратите внимание, что
вам все равно нужно будет пройти и
убедиться, что все
правильно. Это не меняет
все. Есть
только несколько
настроек, которые
это изменит.

Пожалуйста, выберите свой IMAP сервер:
bincimap = Binc IMAP сервер
courier = Courier IMAP сервер
cyrus = Cyrus IMAP сервер
dovecot = Dovecot Secure IMAP сервер
exchange = Microsoft Exchange IMAP сервер
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = IMAP сервер Университета Вашингтона
gmail = IMAP доступ к учетным записям Google mail (Gmail)

quit = Не менять ничего
Команда >> <– courier

imap_server_type = courier
default_folder_prefix = INBOX.
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = .
delete_folder = true

Нажмите enter, чтобы продолжить… <– нажмите ENTER

Конфигурация SquirrelMail : Чтение: config.php (1.4.0)

Главное меню –

  1. Предпочтения организации
  2. Настройки сервера
  3. Папки по умолчанию
  4. Общие параметры
  5. Темы
  6. Адресные книги
  7. Сообщение дня (MOTD)
  8. Плагины
  9. База данных
  10. Языки

D. Установить предопределенные настройки для конкретных IMAP серверов

C Включить цвет
S Сохранить данные
Q Выйти

Команда >> <– 8

Конфигурация SquirrelMail : Чтение: config.php (1.4.0)

Плагины
Установленные плагины

  1. view_as_html

Доступные плагины:

  1. администратор
  2. bug_report
  3. календарь
  4. change_sqlpass
  5. совместимость
  6. delete_move_next
  7. демонстрация
  8. фильтры
  9. удача
  10. информация
  11. listcommands
  12. mail_fetch
  13. message_details
  14. newmail
  15. sent_subfolders
  16. spamcop
  17. squirrelspell
  18. тест
  19. перевод

R Вернуться в главное меню
C Включить цвет
S Сохранить данные
Q Выйти

Команда >> <– 6 (или любое другое число, которое имеет плагин совместимости - он нужен для плагина change_sqlpass)

Конфигурация SquirrelMail : Чтение: config.php (1.4.0)

Плагины
Установленные плагины

  1. view_as_html
  2. совместимость

Доступные плагины:

  1. администратор
  2. bug_report
  3. календарь
  4. change_sqlpass
  5. delete_move_next
  6. демонстрация
  7. фильтры
  8. удача
  9. информация
  10. listcommands
  11. mail_fetch
  12. message_details
  13. newmail
  14. sent_subfolders
  15. spamcop
  16. squirrelspell
  17. тест
  18. перевод

R Вернуться в главное меню
C Включить цвет
S Сохранить данные
Q Выйти

Команда >> <– 6 (номер плагина change_sqlpass)

Конфигурация SquirrelMail : Чтение: config.php (1.4.0)

Плагины
Установленные плагины

  1. view_as_html
  2. совместимость
  3. change_sqlpass

Доступные плагины:

  1. администратор
  2. bug_report
  3. календарь
  4. delete_move_next
  5. демонстрация
  6. фильтры
  7. удача
  8. информация
  9. listcommands
  10. mail_fetch
  11. message_details
  12. newmail
  13. sent_subfolders
  14. spamcop
  15. squirrelspell
  16. тест
  17. перевод

R Вернуться в главное меню
C Включить цвет
S Сохранить данные
Q Выйти

Команда >> <– S

Конфигурация SquirrelMail : Чтение: config.php (1.4.0)

Плагины
Установленные плагины

  1. view_as_html
  2. совместимость
  3. change_sqlpass

Доступные плагины:

  1. администратор
  2. bug_report
  3. календарь
  4. delete_move_next
  5. демонстрация
  6. фильтры
  7. удача
  8. информация
  9. listcommands
  10. mail_fetch
  11. message_details
  12. newmail
  13. sent_subfolders
  14. spamcop
  15. squirrelspell
  16. тест
  17. перевод

R Вернуться в главное меню
C Включить цвет
S Сохранить данные
Q Выйти

Команда >> <– Q

Теперь нам нужно включить squirrelmail следующим образом:

a2enconf squirrelmail  
service apache2 reload

Теперь вы можете ввести http://server1.example.com/squirrelmail или http://192.168.0.100/squirrelmail в вашем браузере, чтобы получить доступ к SquirrelMail.

Войдите с вашим адресом электронной почты (например, [email protected]) и вашим паролем:

Вы должны найти приветственное письмо в вашем почтовом ящике:

Чтобы изменить свой пароль, перейдите в Опции, а затем выберите Изменить пароль:

Введите ваш текущий пароль, а затем ваш новый пароль дважды:

Если пароль был успешно изменен, вы увидите следующее сообщение об ошибке, что означает, что вы должны войти снова с вашим новым паролем (поскольку старый больше не активен):

17 Ссылки

18 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.