2020年12月27日日曜日

SMTPs / POPs ゲートウェイを立てる

 ウチの HDD 録画機であるところの VARDIA RD-S1004K,ネット録画予約するにはメールを介してやり取りするが,古い機種なので SMTP-AUTH / SMTP over SSL / POP over SSL にことごとく対応していない.
プロバイダが提供するメールサーバはこれらが必須になったので,ローカルでメールサーバを立てようかと思ったけど,メールサーバは非常に管理がめんどくさい.
なので素の SMTP / POP を SMTP-AUTH over SSL (SMTPs) / POP over SSL (POPs) に変換するゲートウェイを立ててメール処理自体は gmail のメールサーバに丸投げすることにした.

で,* over SSL の部分は,stone で以下のようにすれば実現できる.

stone smtp.gmail.com:465/ssl 10025 -- pop.gmail.com:995/ssl 110
これで少なくとも POPs に関しては,stone を実行しているマシンのポート 110 で POP アクセスできる.

次に SMTP を SMTP AUTH に変換する簡単なゲートウェイプログラムを作った.→GitHub
SMTP AUTH のプロトコルはググれば色々出てくる.
これを上記 stone と同じサーバに仕掛けて以下のような経路を作ると,

port25 → [SMTP AUTH GW] → port10025 → [stone] → gmail smtp (port993)
port 25 で受けた素の SMTP プロトコルを SMTPs に変換して gmail smtp サーバに転送する.

試しに telnet で手動でメール投げてみた.

  [yoshi@rafale ~]# telnet ag300h 25
  Trying 192.168.0.254...
  Connected to ag300h.
  Escape character is '^]'.
  220 smtp.gmail.com ESMTP y23sm35522980pfc.178 - gsmtp
* EHLO hoge.com
  250-smtp.gmail.com at your service, [xx.xx.xx.xx]
  250-SIZE 35882577
  250-8BITMIME
  250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
  250-ENHANCEDSTATUSCODES
  250-PIPELINING
  250-CHUNKING
  250 SMTPUTF8
* MAIL FROM: <yyyy@gmail.com>
  250 2.1.0 OK y23sm35522980pfc.178 - gsmtp
* RCPT TO: <xxxx@gmail.com>
  250 2.1.5 OK y23sm35522980pfc.178 - gsmtp
* DATA
  354  Go ahead y23sm35522980pfc.178 - gsmtp
* From: yyyy@gmail.com
* To: xxxx@gmail.com
* Subject: TEST
* 
* test mail
* .
  250 2.0.0 OK  1609073620 y23sm35522980pfc.178 - gsmtp
* QUIT
  221 2.0.0 closing connection y23sm35522980pfc.178 - gsmtp
  Connection closed by foreign host.
  [yoshi@rafale ~]#
行頭が * の行が手入力した行.暗号化は stone がやってくれるので telnet で素のテキストでやり取りできるし,EHLO コマンドを投げたあと裏では SMTP AUTH 認証が走っているので,MAIL コマンドが受け付けられているのがわかる.

これで RD-S1004 が延命できたヽ(´ー`)ノ

0 件のコメント:

コメントを投稿