インストール手順 · 8 min read · Sep 28, 2025
Postfix、Courier、MySQL、および SquirrelMail を使用した仮想ユーザーとドメイン (Mandriva 2009.1 x86_64) - ページ 5
15 SquirrelMail のインストール
SquirrelMail は、ユーザーがブラウザでメールを送受信できるウェブメールインターフェースです。この章では、SquirrelMail をインストールし、ユーザーが SquirrelMail インターフェースからメールアカウントのパスワードを変更できるように設定を調整する方法を示します。
SquirrelMail をインストールするには、単に次のように入力します:
urpmi squirrelmailSquirrelMail にはいくつかのプラグインがプリインストールされていますが、残念ながら、どれも MySQL データベース内のメールパスワードを変更することはできません。しかし、手動でインストールできる Change SQL Password プラグインがあります:
cd /var/www/squirrelmail/plugins/
wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_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 Paul Lesneiwski <[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 // // 理論的には、Pear によってサポートされている任意の SQL データベースがここでサポートされるべきです。 // 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 つの値 (1 行、1 列) を返す必要があり、その値は理想的には 1 または 0 で、ユーザー/パスワードペアが実際にデータベースに存在することを示します。 // // %1 はこのクエリで完全なユーザー名 (ドメインを含む) に置き換えられます。 // 例えば、"[email protected]" // %2 はこのクエリでユーザー名 (ドメイン部分を含まない) に置き換えられます。 // 例えば、"jose" // %3 はこのクエリでドメイン名に置き換えられます。 // 例えば、"example.com" // %4 はこのクエリで現在の (古い) パスワードに置き換えられます。 // どのような暗号化形式が必要かは他のプラグイン設定に依存します。 // %5 はこのクエリで現在の (古い) パスワードの暗号化されていないプレーンテキストに置き換えられます。パスワード暗号化を使用しない場合、%4 と %5 は同じ値になりますが、%4 には二重引用符が付いており、%5 には付いていません。 // //$lookup_password_query = ''; // TERRIBLE SECURITY: $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 はすべてのクエリで完全なユーザー名 (ドメインを含む) に置き換えられます。 // %2 はすべてのクエリでユーザー名 (ドメイン部分を含まない) に置き換えられます。 // %3 はすべてのクエリでドメイン名に置き換えられます。 // %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 を返す必要があります。 // // この設定は、この機能を有効にしたくない場合は空の文字列にしてください。 // // %1 はこのクエリで完全なユーザー名 (ドメインを含む) に置き換えられます。 // %2 はこのクエリでユーザー名 (ドメイン部分を含まない) に置き換えられます。 // %3 はこのクエリでドメイン名に置き換えられます。 // //$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 はこのクエリで完全なユーザー名 (ドメインを含む) に置き換えられます。 // %2 はこのクエリでユーザー名 (ドメイン部分を含まない) に置き換えられます。 // %3 はこのクエリでドメイン名に置き換えられます。 // //$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 接続を強制したくない場合は、ゼロに設定します。 // // 特定のドメイン、ユーザー、またはサービスレベルに対してこの値をオーバーライドすることができます。 // $csp_secure_port = 0; //$csp_secure_port = 443; // csp_non_standard_http_port // // 標準 HTTP ウェブリクエストを非標準ポート (ポート 80 以外) で提供する場合は、そのポート番号をここに指定する必要があります。そうでない場合はゼロに設定します。 // // 特定のドメイン、ユーザー、またはサービスレベルに対してこの値をオーバーライドすることができます。 // //$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 // // 受け入れる最小および最大パスワード長を設定することができます。制限を適用しない場合は、これらの設定をゼロのままにしてください。 // // 他の設定をオンにすると、新しいパスワードに少なくとも 1 つの数字、大文字、小文字、および/または 1 つの非英数字が含まれているかどうかを確認します。 // $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 に POP3 および IMAP サーバーとして Courier を使用することを伝えます (これを行わないと、SquirrelMail にログインしたときに次のようなエラーが表示される可能性があります:
ERROR: Could not complete request.
Query: CREATE "Sent"
Reason Given: Invalid mailbox name.) そして、Change SQL Password プラグインを有効にし、他のパスワードプラグインを無効にします:
/var/www/squirrelmail/conf/conf.pl次のメニューが表示されます。D を入力して IMAP/POP3 サーバーを変更します:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. LanguagesD. Set pre-defined settings for specific IMAP serversC Turn color off
S Save data
Q QuitCommand >> <– D
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
SquirrelMail を構築している間に、いくつかのサーバーでうまく機能する設定があることを発見しました。IMAP サーバーを選択すると、このオプションはそのサーバーのためにいくつかの事前定義された設定を設定します。すべてが正しいことを確認する必要があります。この設定はすべてを変更するわけではありません。変更される設定はわずかです。IMAP サーバーを選択してください:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP serverquit = 何も変更しない
Command >> <– 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
任意のキーを押して続行してください… <– 任意のキーを押す
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. LanguagesD. Set pre-defined settings for specific IMAP serversC Turn color off
S Save data
Q QuitCommand >> <– 8
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. filters
5. address_add
6. change_pass
7. quota_usage
8. change_ldappass
9. avelsieve
10. windows
11. folder_sizes
12. archive_mail
13. empty_foldersAvailable Plugins:
14. abook_import_export
15. administrator
16. block_sender
17. bookmarks
18. bug_report
19. calendar
20. change_sqlpass
21. compatibility
22. demo
23. fortune
24. info
25. junkfolder
26. ldifimport
27. listcommands
28. login_image
29. mail_fetch
30. message_details
31. rewrap
32. secure_login
33. select_range
34. sent_subfolders
35. spam_buttons
36. spamassassin
37. spamcop
38. test
39. translate
40. usernameR Return to Main Menu
C Turn color off
S Save data
Q QuitCommand >> <– 21 (または、change_sqlpass プラグインに必要な互換性プラグインの番号)
SquirrelMail Configuration : Read: config.php (1.4.0)
Plugins
Installed Plugins
- delete_move_next
- squirrelspell
- newmail
- filters
- address_add
- change_pass
- quota_usage
- change_ldappass
- avelsieve
- windows
- folder_sizes
- archive_mail
- empty_folders
- compatibilityAvailable Plugins:
- abook_import_export
- administrator
- block_sender
- bookmarks
- bug_report
- calendar
- change_sqlpass
- demo
- fortune
- info
- junkfolder
- ldifimport
- listcommands
- login_image
- mail_fetch
- message_details
- rewrap
- secure_login
- select_range
- sent_subfolders
- spam_buttons
- spamassassin
- spamcop
- test
- translate
- usernameR Return to Main Menu
C Turn color off
S Save data
Q QuitCommand >> <-- 21 (change_sqlpass プラグインの番号) SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins 1. delete_move_next 2. squirrelspell 3. newmail 4. filters 5. address_add 6. quota_usage 7. change_ldappass 8. avelsieve 9. windows 10. folder_sizes 11. archive_mail 12. empty_folders 13. compatibility 14. change_sqlpass
Available Plugins:
15. abook_import_export
16. administrator
17. block_sender
18. bookmarks
19. bug_report
20. calendar
21. change_pass
22. demo
23. fortune
24. info
25. junkfolder
26. ldifimport
27. listcommands
28. login_image
29. mail_fetch
30. message_details
31. rewrap
32. secure_login
33. select_range
34. sent_subfolders
35. spam_buttons
36. spamassassin
37. spamcop
38. test
39. translate
40. usernameR Return to Main Menu
C Turn color off
S Save data
Q QuitCommand >> <– 6 (change_pass プラグインの番号)
SquirrelMail Configuration : Read: config.php (1.4.0)
Plugins
Installed Plugins
- delete_move_next
- squirrelspell
- newmail
- filters
- address_add
- quota_usage
- change_ldappass
- avelsieve
- windows
- folder_sizes
- archive_mail
- empty_folders
- compatibility
- change_sqlpassAvailable Plugins:
- abook_import_export
- administrator
- block_sender
- bookmarks
- bug_report
- calendar
- change_pass
- demo
- fortune
- info
- junkfolder
- ldifimport
- listcommands
- login_image
- mail_fetch
- message_details
- rewrap
- secure_login
- select_range
- sent_subfolders
- spam_buttons
- spamassassin
- spamcop
- test
- translate
- usernameR Return to Main Menu
C Turn color off
S Save data
Q QuitCommand >> <-- 7 (change_ldappass プラグインの番号) SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Plugins Installed Plugins 1. delete_move_next 2. squirrelspell 3. newmail 4. filters 5. address_add 6. quota_usage 7. avelsieve 8. windows 9. folder_sizes 10. archive_mail 11. empty_folders 12. compatibility 13. change_sqlpass
Available Plugins:
14. abook_import_export
15. administrator
16. block_sender
17. bookmarks
18. bug_report
19. calendar
20. change_ldappass
21. change_pass
22. demo
23. fortune
24. info
25. junkfolder
26. ldifimport
27. listcommands
28. login_image
29. mail_fetch
30. message_details
31. rewrap
32. secure_login
33. select_range
34. sent_subfolders
35. spam_buttons
36. spamassassin
37. spamcop
38. test
39. translate
40. usernameR Return to Main Menu
C Turn color off
S Save data
Q QuitCommand >> <– S
config.php にデータが保存されました
続行するには Enter を押してください… <– ENTER
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. filters
5. address_add
6. quota_usage
7. change_ldappass
8. avelsieve
9. windows
10. folder_sizes
11. archive_mail
12. empty_folders
13. compatibility
14. change_sqlpassAvailable Plugins:
15. abook_import_export
16. administrator
17. block_sender
18. bookmarks
19. bug_report
20. calendar
21. change_ldappass
22. change_pass
23. demo
24. fortune
25. junkfolder
26. ldifimport
27. listcommands
28. login_image
29. mail_fetch
30. message_details
31. rewrap
32. secure_login
33. select_range
34. sent_subfolders
35. spam_buttons
36. spamassassin
37. spamcop
38. test
39. translate
40. usernameR Return to Main Menu
C Turn color off
S Save data
Q QuitCommand >> <– Q
これで、ブラウザに http://server1.example.com/squirrelmail または http://192.168.0.100/squirrelmail と入力して SquirrelMail にアクセスできます。
メールアドレス (例: [email protected]) とパスワードでログインします:

受信トレイにウェルカムメールが届いているはずです:


パスワードを変更するには、オプションに移動し、次にパスワードの変更を選択します:

現在のパスワードを入力し、新しいパスワードを 2 回入力します:

SquirrelMail は、パスワードが正常に変更されたかどうかを教えてくれます:

16 参考文献
チュートリアル: Debian-Sarge と Postfix 2.1 を使用した ISP スタイルのメールサービス: http://workaround.org/articles/ispmail-sarge/
Postfix + Quota: http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&forum=17
Mail Passwords Encrypted using saslauthd: http://www.syscp.de/docs/public/contrib/cryptedmailpws
17 リンク
- Postfix MTA: http://www.postfix.org/
- Postfix Quota Patch: http://vda.sourceforge.net/
- phpMyAdmin: http://www.phpmyadmin.net/
- SquirrelMail: http://www.squirrelmail.org/
- Mandriva: http://www.mandriva.com/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。