SquirrelMail · 4 min read · Oct 01, 2025

SquirrelMailのインストール

18 SquirrelMailのインストール

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

SquirrelMailをインストールするには、次のコマンドを実行します:

yum install squirrelmail php-pear-DB

その後、Apacheを再起動します:

/etc/init.d/httpd restart

SquirrelMailにはいくつかのプラグインがプリインストールされていますが、残念ながら、どれもMySQLデータベース内のメールパスワードを変更することはできません。しかし、手動でインストールできるChange SQL Passwordプラグインがあります:

cd /usr/share/squirrelmail/plugins  
wget http://www.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はすべてのクエリで新しいパスワードの暗号化されていないプレーンテキストに置き換えられます。 // 注意: ここでのクエリでは、この値の周りに引用符を提供する必要はありません。 // //$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 // // ユーザーがパスワードを変更する必要があるかどうかを示すフラグをチェックするクエリです。 // このクエリは、ユーザーがパスワードを変更する必要がない場合は0を、変更する必要がある場合は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接続を強制したくない場合は、0に設定します。 // // 特定のドメイン、ユーザー、またはサービスレベルに対してこの値をオーバーライドすることができます。 // $csp_secure_port = 0; //$csp_secure_port = 443; // csp_non_standard_http_port // // 標準HTTPウェブリクエストを非標準ポート(ポート80以外)で提供する場合は、そのポート番号をここに指定する必要があります。 // それ以外の場合は、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 // // 受け入れる最小および最大パスワード長を設定するか、これらの設定を0のままにして制限を適用しないことを示します。 // // 他の設定をオンにして、新しいパスワードに少なくとも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; ?> |

Change SQL Passwordプラグインは、次のようにインストールするCompatibilityプラグインにも依存しています:

cd /usr/share/squirrelmail/plugins  
wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-2.0.14-1.0.tar.gz  
tar xvfz compatibility-2.0.14-1.0.tar.gz
cd /usr/share/squirrelmail/plugins/compatibility  
patch -p0 < patches/compatibility_patch-1.4.8.diff

次に、SquirrelMailの設定に入り、SquirrelMailにCourierをPOP3およびIMAPサーバーとして使用していることを伝え、Change SQL PasswordおよびCompatibilityプラグインを有効にする必要があります:

/usr/share/squirrelmail/config/conf.pl

次のメニューが表示されます。指示に従ってナビゲートしてください:

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        = Do not change anything
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

Available Plugins:
4. calendar
5. compatibility
6. filters
7. administrator
8. info
9. change_sqlpass
10. fortune
11. translate
12. spamcop
13. abook_take
14. mail_fetch
15. listcommands
16. bug_report
17. message_details
18. sent_subfolders

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> <– 5(または互換性プラグインの番号 - change_sqlpassプラグインに必要)

SquirrelMail Configuration : Read: config.php (1.4.0)

Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. compatibility

Available Plugins:
5. calendar
6. filters
7. administrator
8. info
9. change_sqlpass
10. fortune
11. translate
12. spamcop
13. abook_take
14. mail_fetch
15. listcommands
16. bug_report
17. message_details
18. sent_subfolders

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> <– 9(change_sqlpassプラグインの番号)

SquirrelMail Configuration : Read: config.php (1.4.0)

Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. compatibility
5. change_sqlpass

Available Plugins:
6. calendar
7. filters
8. administrator
9. info
10. fortune
11. translate
12. spamcop
13. abook_take
14. mail_fetch
15. listcommands
16. bug_report
17. message_details
18. sent_subfolders

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. compatibility
5. change_sqlpass

Available Plugins:
6. calendar
7. filters
8. administrator
9. info
10. fortune
11. translate
12. spamcop
13. abook_take
14. mail_fetch
15. listcommands
16. bug_report
17. message_details
18. sent_subfolders

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> <– Q

最後に行う必要があるのは、/etc/squirrelmail/config_local.phpファイルを修正し、$default_folder_prefix変数をコメントアウトすることです。これを行わないと、SquirrelMailにログインした後に次のエラーメッセージが表示されます: Query: CREATE “Sent” Reason Given: Invalid mailbox name.

vi /etc/squirrelmail/config_local.php

| |

これで、ブラウザでhttp://server1.example.com/webmailまたはhttp://192.168.0.100/webmailにアクセスしてSquirrelMailにアクセスできます。

メールアドレス(例: [email protected])とパスワードでログインします:

受信トレイにウェルカムメールが見つかるはずです:

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

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

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

19 参考文献

チュートリアル: 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

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

20 リンク

Share: X/Twitter LinkedIn

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

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