[Mew-dist 12635] quoting LOGIN user name
Ryoji KATO
ryoji.kato at example.com
2000年 3月 8日 (水) 03:06:31 JST
日本エリクソンの加藤と申します。
いつも mew を使わせてもらっております。
mew-dist ML には参加していないのですが、Imap.pm の動作で
うまくいかない場合がありましたのでお知らせします。
社内の Microsoft Exchange Server の IMAP のユーザ名が
<domain name>\<user name>
というように、ユーザ名に"\"が入っているのですが、認証に失敗するので
RFC にあたりますと、
login ::= "LOGIN" SPACE userid SPACE password
userid ::= astring
password ::= astring
となってユーザ名にもパスワードと同じ規則が適用されるようなので
以下のような patch でユーザ名にもパスワードと同じ処理をすると
うまく動作するようになりました。
Imap.pm は im-140 リリースに含まれているものです。
--- Imap.pm.orig Tue Mar 7 16:02:12 2000
+++ Imap.pm Tue Mar 7 16:36:57 2000
@@ -72,11 +72,13 @@
}
my $failed = 0;
if ($auth eq 'LOGIN') {
- my $pw = $pass;
+ my ($us, $pw) = ($user, $pass);
+ $us =~ s/([\\"])/\\$1/g; # escape specials
+ $us = "\"$us\""; # quote it
$pw =~ s/([\\"])/\\$1/g; # escape specials
$pw = "\"$pw\""; # quote it
- $resp = &send_command($HANDLE, "im$seq LOGIN $user $pw",
- "im$seq LOGIN $user PASSWORD");
+ $resp = &send_command($HANDLE, "im$seq LOGIN $us $pw",
+ "im$seq LOGIN $us PASSWORD");
while ($resp !~ /^im$seq/) {
if ($resp =~ /^\* NO/i) {
# $failed = 1;
Mew-dist メーリングリストの案内