[Mew-dist 13197] SMTP AUTH is mandatory when sendmail speaks SMTP AUTH
Hajimu UMEMOTO ( 梅本 肇 )
ume at example.com
2000年 6月 5日 (月) 03:30:18 JST
梅本@IMASYです。
某所で SMTP AUTH のテストをやってたら、Netscape Communicator な人か
らメイルが出せなくなったと怒られました。原因は、sendmail が EHLO に
AUTH PLAIN が使えると返すと、Netscape Communicator が無条件に AUTH
PLAIN を発行してくれるためでした。つまり、現行の Netscape Communicator
の実装では、サーバー側が PLAIN な SMTP AUTH に対応するためには、全ての
ユーザが SASL 的に登録されている必要があるということになります。
なんだ Mew は関係ないじゃんと怒られた方がいたとしたらごめんなさい。
さて、Mew でも同様のことが起こり得ます。現在の Mew の実装では、EHLO
に CRAM-MD5 が使えると返って来たら、無条件に AUTH CRAM-MD5 を発行して
います。
SMTP AUTH をオプション化するべきだと思って mew-smtp-auth-required な
る t/nil なスイッチを追加しかけたのですが、SMTP サーバに対する属性だろ
うから、mew-config-alist で制御できるべきだろうと思った時点で手が止まっ
ちゃいました。mew-config-alist の value は string のみなんですね。なん
となく、"yes", "no" とかにするのは恰好悪いなと思っちゃうわけですが、な
んか良い方法ありませんでしょうか?
取り敢えず書きかけのパッチを添付します。
-------------- next part --------------
Index: mew-1.95b38/mew-blvs.el
diff -u mew-1.95b38/mew-blvs.el.orig mew-1.95b38/mew-blvs.el
--- mew-1.95b38/mew-blvs.el.orig Sat May 27 22:30:11 2000
+++ mew-1.95b38/mew-blvs.el Mon Jun 5 02:23:31 2000
@@ -58,6 +58,7 @@
(defvar mew-draft-smtp-ssh-server nil)
(defvar mew-draft-smtp-helo-domain nil)
(defvar mew-draft-smtp-user nil)
+(defvar mew-draft-smtp-auth-required nil)
(defvar mew-draft-buffer-config nil)
(defvar mew-overlay-header-keymap nil)
(defvar mew-overlay-attach-keymap nil)
@@ -113,6 +114,7 @@
'mew-draft-smtp-port
'mew-draft-smtp-ssh-server
'mew-draft-smtp-helo-domain
+ 'mew-draft-smtp-auth-required
'mew-draft-buffer-config
'mew-overlay-header-keymap
'mew-overlay-attach-keymap
Index: mew-1.95b38/mew-config.el
diff -u mew-1.95b38/mew-config.el.orig mew-1.95b38/mew-config.el
--- mew-1.95b38/mew-config.el.orig Thu May 18 20:42:27 2000
+++ mew-1.95b38/mew-config.el Mon Jun 5 02:14:42 2000
@@ -145,6 +145,10 @@
(or (mew-cfent-value case "smtp-user")
(mew-user)))
+(defun mew-smtp-auth-required (&optional case)
+ (or (mew-cfent-value case "smtp-auth-required")
+ mew-smtp-auth-required))
+
(defun mew-nntp-server (&optional case)
(or (mew-cfent-value case "nntp-server")
mew-nntp-server))
Index: mew-1.95b38/mew-smtp.el
diff -u mew-1.95b38/mew-smtp.el.orig mew-1.95b38/mew-smtp.el
--- mew-1.95b38/mew-smtp.el.orig Sun May 28 16:40:58 2000
+++ mew-1.95b38/mew-smtp.el Mon Jun 5 02:23:41 2000
@@ -322,7 +322,8 @@
pro (format "HELO %s%s" mew-draft-smtp-helo-domain mew-cs-eol)))
(defun mew-smtp-command-auth (pro pnm)
- (if (string-match "AUTH .*CRAM-MD5" (mew-smtp-get-string pnm))
+ (if (and mew-draft-smtp-auth-required
+ (string-match "AUTH .*CRAM-MD5" (mew-smtp-get-string pnm)))
(process-send-string pro (format "AUTH CRAM-MD5%s" mew-cs-eol))
(mew-smtp-set-status pnm "mail-from")
(mew-smtp-command-mail-from pro pnm)))
Index: mew-1.95b38/mew-vars.el
diff -u mew-1.95b38/mew-vars.el.orig mew-1.95b38/mew-vars.el
--- mew-1.95b38/mew-vars.el.orig Mon Jun 5 02:22:18 2000
+++ mew-1.95b38/mew-vars.el Mon Jun 5 02:22:36 2000
@@ -303,6 +303,9 @@
(defvar mew-smtp-helo-domain "localhost")
+(defvar mew-smtp-auth-required nil
+ "*If non-nil, Mew speaks SMTP AUTH corresponding to result of EHLO.")
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Demo
-------------- next part --------------
梅本 肇 @ インターネット互助会横浜 http://www.imasy.org/~ume/
ume at example.com ume at example.com ume at example.com
プログラムは書いた人の意図ではなく書かれた通り動く
Mew-dist メーリングリストの案内