SMTP SERVER AUTH DATA(参考)

(At your own risk)

qmail-smtpd-auth-0.31では、EHLOに対するSMTPの返事に のいずれかを含む場合に認証処理を行なうようになっている。これにマッチし ない返事を返すSMTPサーバを使用するばあい変更が必要だ。
DTI Submission Port 587のサーバメッセージ
Connected to smtp93.dti.ne.jp.
Escape character is '^]'.
220 smtp13.dti.ne.jp ESMTP DTImail 3.11s; Mon, 30 Oct 2006 10:34:25 +0900 (JST)
EHLO *****.*****.jp
250-smtp13.dti.ne.jp Hello PPPa495.niigata-ip.dti.ne.jp [210.159.175.245], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 104857600
250-AUTH CRAM-MD5 PLAIN LOGIN
250-DELIVERBY
250 HELP
AUTH LOGIN
334 VXNlcm5hbWU6
****************************
334 UGFzc3dvcmQ6
*********
235 2.0.0 OK Authenticated
「AUTH CRAM-MD5 PLAIN LOGIN」にマッチするように変更必要。 以下に変更例を示す。
--- qmail-remote-auth.patch	2006-10-30 11:01:39.000000000 +0900
+++ qmail-remote-auth-dti.patch	2006-10-30 11:01:39.000000000 +0900
@@ -40,8 +40,8 @@
 +  while((i += str_chr(smtptext.s+i,'\n') + 1) && (i+14 < smtptext.len) &&
 +        str_diffn(smtptext.s+i+4,"AUTH LOGIN\n",11) &&
 +        str_diffn(smtptext.s+i+4,"AUTH LOGIN ",11) &&
-+        str_diffn(smtptext.s+i+4,"AUTH PLAIN LOGIN\n",17) &&
-+        str_diffn(smtptext.s+i+4,"AUTH PLAIN LOGIN ",17) &&
++        str_diffn(smtptext.s+i+4,"AUTH CRAM-MD5 PLAIN LOGIN\n",26) &&
++        str_diffn(smtptext.s+i+4,"AUTH CRAM-MD5 PLAIN LOGIN ",26) &&
 +        str_diffn(smtptext.s+i+4,"AUTH=LOGIN\n",11) &&
 +        str_diffn(smtptext.s+i+4,"AUTH=LOGIN ",11));
 +  if ((i+14 < smtptext.len) && auth_smtp_user.len && auth_smtp_pass.len)  {

YBB Submission Port 587のサーバメッセージ
$ telnet ybbsmtp.mail.yahoo.co.jp 587
Trying 203.216.231.239...
Connected to ybbsmtp103.mail.vip.tnz.yahoo.co.jp.
Escape character is '^]'.
220 ybbsmtp22.mail.tnz.yahoo.co.jp ESMTP
EHLO *****.*****.jp
250-ybbsmtp22.mail.tnz.yahoo.co.jp
250-AUTH LOGIN PLAIN
250-PIPELINING
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
************************
334 UGFzc3dvcmQ6
******
235 ok, go ahead (#2.0.0)
「AUTH LOGIN」にマッチする(変更必要ない)。 が、YBBは送信者(MAIL FROM)同じものを指定しないと送信してくれない(複数人で使うのに四苦八苦する)。 とりあえず、以下のようにして、「MAIL FROM」をAUTHのユーザ名に変更する事で複数人での送信使用が可能だ (ただ、送信エラーがAUTHユーザに全部帰ってくるが...)。
--- qmail-remote-auth.patch	2006-10-30 11:01:39.000000000 +0900
+++ qmail-remote-auth-ybb.patch	2006-10-30 11:40:58.000000000 +0900
@@ -59,9 +59,9 @@
 +    substdio_flush(&smtpto);
 +    if (smtpcode() != 235) quit("ZConnected to "," but authentication was rejected (password)");
 +    substdio_puts(&smtpto,"MAIL FROM:<");
-+    substdio_put(&smtpto,sender.s,sender.len);
++    substdio_put(&smtpto,auth_smtp_user.s,auth_smtp_user.len);
 +    substdio_puts(&smtpto,"> AUTH=<");
-+    substdio_put(&smtpto,sender.s,sender.len);
++    substdio_put(&smtpto,auth_smtp_user.s,auth_smtp_user.len);
 +    substdio_puts(&smtpto,">\r\n");
 +    substdio_flush(&smtpto);
 +  } else {


TIKITIKI Submission Port 587のサーバメッセージ
Trying 218.40.30.79...
Connected to smtp8.tiki.ne.jp.
Escape character is '^]'.
220 smtp8.tiki.ne.jp ESMTP Sendmail ; Thu, 3 May 2007 22:51:41 +0900 (JST)
EHLO gem.mydns.jp
250-smtp8.tiki.ne.jp Hello softbank219040138025.bbtec.net [219.40.138.25], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 10624000
250-DSN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
QUIT
221 2.0.0 smtp8.tiki.ne.jp closing connection
Connection closed by foreign host.
「AUTH PLAIN LOGIN」にマッチする(変更必要ない)
BB.EXCITE Submission Port 587のサーバメッセージ
Trying 211.132.194.95...
Connected to smtp.dream.bbexcite.jp.
Escape character is '^]'.
220 exc-mta-sec03.bbexcite.jp ESMTP
EHLO gem.mydns.jp
250-exc-mta-sec03.bbexcite.jp
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
「AUTH LOGIN」および「AUTH=LOGIN」にマッチする(変更必要ない)
Last modified: Tue Feb 3 14:07:35 JST 2009