メール設定 · 9 min read · Jan 12, 2026

Postfix、Courier、MySQL、および SquirrelMail を使用した仮想ユーザーとドメイン (Mandriva 2010.0 x86_64) - ページ 5

15 SquirrelMail のインストール

SquirrelMail は、ユーザーがブラウザでメールを送受信できるウェブメールインターフェースです。この章では、SquirrelMail をインストールし、ユーザーが SquirrelMail インターフェースからメールアカウントのパスワードを変更できるように設定を調整する方法を示します。

SquirrelMail をインストールするには、単に次のように入力します:

urpmi squirrelmail

SquirrelMail にはいくつかのプラグインがプリインストールされていますが、残念ながら、どれも 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 はすべてのクエリ内で完全なユーザー名に置き換えられます // (ドメインを含む)、例えば "[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 つの値 (1 行、1 列) を返す必要があり、 // ユーザーがパスワードを変更する必要がない場合は 0 を、 // ユーザーが今すぐ変更する必要がある場合は 1 を返します。 // // この設定は、この機能を有効にしたくない場合は空の文字列にしてください。 // // %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 接続を強制したくない場合は、 // 0 に設定します。 // // 特定のドメイン、ユーザー、またはサービスレベルに対してこの値をオーバーライドすることができます。 // $csp_secure_port = 0; //$csp_secure_port = 443; // csp_non_standard_http_port // // 標準以外のポート (ポート 80 以外) で標準 HTTP ウェブリクエストを提供する場合は、 // そのポート番号をここに指定する必要があります。 // それ以外の場合は 0 に設定します。 // // 特定のドメイン、ユーザー、またはサービスレベルに対してこの値をオーバーライドすることができます。 // //$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

次のメニューが表示されます。IMAP/POP3 サーバーを変更するには D を入力します:

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. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color off  
S Save data  
Q Quit

Command >> <– 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 server

quit = 何も変更しない
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. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color off  
S Save data  
Q Quit

Command >> <– 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_folders
Available 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. username
R Return to Main Menu  
C Turn color off  
S Save data  
Q Quit

Command >> <– 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. change_pass
  7. quota_usage
  8. change_ldappass
  9. avelsieve
  10. windows
  11. folder_sizes
  12. archive_mail
  13. empty_folders
  14. compatibility
    Available Plugins:
  15. abook_import_export
  16. administrator
  17. block_sender
  18. bookmarks
  19. bug_report
  20. calendar
  21. change_sqlpass
  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. username
    R Return to Main Menu
    C Turn color off
    S Save data
    Q Quit
    
    Command >> <-- 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. username
R Return to Main Menu  
C Turn color off  
S Save data  
Q Quit

Command >> <– 6 (change_pass プラグインの番号)

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. username
    R Return to Main Menu
    C Turn color off
    S Save data
    Q Quit
    
    Command >> <-- 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. username
R Return to Main Menu  
C Turn color off  
S Save data  
Q Quit

Command >> <– 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_sqlpass
Available 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. info  
26. junkfolder  
27. ldifimport  
28. listcommands  
29. login_image  
30. mail_fetch  
31. message_details  
32. rewrap  
33. secure_login  
34. select_range  
35. sent_subfolders  
36. spam_buttons  
37. spamassassin  
38. spamcop  
39. test  
40. username
R Return to Main Menu  
C Turn color off  
S Save data  
Q Quit

Command >> <– 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 + クォータ: http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&forum=17

sasluthd を使用して暗号化されたメールパスワード: http://www.syscp.de/docs/public/contrib/cryptedmailpws

17 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。