Web メールでユーザー名を透過的に変更するためのオプションにはどのようなものがありますか?

Web メールでユーザー名を透過的に変更するためのオプションにはどのようなものがありますか?

現在、当社には完全に機能する POP/IMAP/Web メール システム (Dovecot と Roundcube を使用) があり、これは設計意図どおりに完璧さを極めた輝かしい塔です。当社には何千もの顧客がいて、彼らは「デフォルト」ドメイン (ここでは ourdomain.com と呼びます) に属しており、ユーザー名とパスワードで正常にログインしています。さらに数千の顧客が当社がホストするドメインを所有しており、彼らは完全な電子メール アドレスとパスワード (ここでは customerdomain.com と呼びます) で正常にログインしています。これは 1990 年代から続いており、多くの顧客構成が定着しています。

問題は、今では人々が完全な電子メールアドレスでウェブフォームにログインすることに慣れているため、ourdomain.comを使用する人々は、ウェブメールにログインするためにのみユーザー名。これは、当社のテクニカル サポート部門が週に数回受ける電話です (私もこの件についてはテクニカル サポートに電話しないだけで、この件については罪を犯しています)。おそらく、何らかのソフトウェア ソリューションで排除する必要があります。

では、RoundcubeやDovecotに「[メールアドレス]」を「ユーザー名」として代わりに使用すれば、システム内の全員の実際のユーザー名を変更する必要がなくなりますか?しかしのみドメインが「ourdomain.com」の場合、ない「customerdomain.com」。カスタム コーディングは、セキュリティ アップグレードを行うたびに再実装する必要があることに注意してください。このオプションは、最後の選択肢としてのみ検討されます。

要約:

次のロジックが必要です:

if $email contains @ourdomain.com
{
    remove @ourdomain.com;
    submit to roundcube;
} else {
    submit to roundcube;
}

答え1

この問題は、roundcube、dovecot、またはユーザー名バックエンドのいずれかで解決できます。

  1. Roundcubeにはオプションがありますドメインが指定されていない場合はドメイン部分を自動的に追加します(提案者コンディバス)。しかし、あなたの場合にはあまり役に立ちません。もちろん、roundcube にパッチを当てて(PHP 言語で)ロジックを追加することもできます。

  2. Dovecotにはオプションがありますドメインの削除(提案されているように ユーザー名@ドメイン形式を使用するとDovecotユーザーの検索が失敗する) ですが、条件付きストリップ (例: domain = @ourdomain.com の場合はドメインをストリップ) は実行できません。 もちろん、dovecot (C 言語を使用) にパッチを適用してロジックを追加することもできます。

  3. ユーザー名バックエンドもオプションです。使用するバックエンド(SQL、LDAP、カスタムエンジンのいずれか)を指定しません。ユーザー名列には2つの形式があると考えられます。ドメインの有無これで、ドメインのないすべてのユーザー名を username@ourdomain に変換できます。このプロセスをオプション 1 (roundcube の自動ドメイン追加) と組み合わせると、ユーザー名と username@ourdomain のどちらでもログインできます。

答え2

RoundCubeというオプションがありますusername_domain

// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to support multiple hosts
// Supported replacement variables:
// %h - user's IMAP hostname
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %z - IMAP domain (IMAP hostname without the first part)
// For example %n = mail.domain.tld, %t = domain.tld
$config['username_domain'] = '';

サブディレクトリ( などourdomain.tld/roundcube)を使用している場合は、このオプションを

$config['username_domain'] = '%n';

サブドメイン( などmail.domain.tld)を使用している場合は、このオプションを

$config['username_domain'] = '%t';

ユーザーがログイン時に完全なメール アドレスを入力すると、そのメール アドレスがそのまま使用されます。ドメイン部分が省略されている場合は、RoundCube補完に URL ドメインが使用されます。また、roundcube の設定には便利なオプションが多数あります。

関連情報