0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SMTP認証を代替するStreamRelay.NET.exe

Posted at

System.Net.Mail.SmtpClient の認証機能が PLAINぐらいしか対応していなかったので、StreamRelay.NET.exe の Proxy 機能として実装してみた。


-RemoteProxy オプション

-RemoteProxy オプションのスキームに mailauth を新設した。

例えば、-RemoteProxy mailauth://user:password@mail.example.com/DIGEST-MD5?cNonce=AAAAAAAAAAAA
として、メール送信経路上に挟めば、Mailクライアントが対応していないSMTP認証を通してメール送信ができる

認証は、StreamRelay.NET.exeが肩代わりするのだから、Mailクライアントは認証無しで起動する必要があるよ。


mailauth スキーム

仕様はこんな感じ
mailauth://ユーザ名:パスワード@ホスト名:ポート/認証方法?オプション&オプション....


ユーザ名:パスワード

SMTP認証に使うユーザ名とパスワード


ホスト名:ポート

SMTP の EHLO ホスト コマンドのホスト
または、
POPbeforeSMTP の対象POPサーバホスト名とポート
または、
APOPbeforeSMTP の対象POPサーバホスト名とポート

に使う


認証方法

以下に対応

  • PLAIN
  • LOGIN
  • CRAM-MD5
  • DIGEST-MD5
  • POP3BS (POP3 before SMTP)
  • APOP
  • POP3
  • SMTP-AUTO

APOP と POP3 は SMTP ではなくて、POP。POPクライアントで認証機能がぶっ壊れている。って事はないと思うので、使う場面はないと思う。
まぁ、POP3 しか対応していないPOPクライアントをこのツールでAPOPに対応させる。って事はできなくなはないけど、その場合、POP認証用のパケットがでちゃうので、(サーバとしてはAPOPで認証したのに、POP認証パケット来たけど、これは何?状態)あまりよろしくないだろう。

SMTP-AUTO は、SMTP認証の DIGEST-MD5/CRAM-MD5/LOGIN/PLAIN から、さらにサーバから提示された方法の中からテキトーな認証方法が選択される


オプション

基本的には、名前=値&名前=値.... という形式

  • Encoding=文字コード (既定はUTF-8)
  • CNonce=Base64文字列(固定値) (DIGEST-MD5 で使用する)
  • CNonceHex=Base16値(固定値) (DIGEST-MD5 で使用する)
  • CNoceRand=num%2cアルゴリズム名 (アルゴリズム名で指定したアルゴリズムを使用してnum長の乱数バイト列) (DIGEST-MD5 で使用する)
  • CNoceRand=min-max%2cアルゴリズム名 (アルゴリズム名で指定したアルゴリズムを使用してmin-max長の乱数バイト列) (DIGEST-MD5 で使用する)
  • NC (既定値は 000000) (DIGEST-MD5 で使用する)
  • UserName2nd=文字列 (PLAINでの認証IDというやつ。既定はユーザ名と同じだけと異なる値を指定したい場合)
  • URI=文字列 (既定は smtp/local) (DIGEST-MD5 で使用する) この値とレルム値で URI が形成される

StartTLS も兼用する

STARTTLS ゲートウェイとしての StreamRelay.NET.exe → STARTTLSクライアントにもなる


sendmail.net.exe

高機能かどうか分からんが、mail 専用のコマンドを作った。

BlatJ.exeのようなsendmailのようなメール送信するCLIコマンド sendmail.net.exe


目次へ戻る

目次というか最初の一歩

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?