ssh + smtp

Katsumi Yamaoka yamaoka @ jpl.org
2002年 7月 23日 (火) 15:55:45 JST


すみませんが、ちょっと質問。

現実逃避で FLIM の smtp.el を利用する次のようなものを作ってみま
した。

(let ((smtp-open-connection-function
       (lambda (name buffer host service)
	 (start-process name buffer "ssh" "-C" host
			"telnet" "-8" host service))))
  ...)

これは遠隔地の SMTP サーバーに接続するのに生の SMTP コネクション
を使う代わりに、まず SSH でサーバーに接続し、そこからローカルホ
ストの SMTP ポートにつなぐというもので、こういうのってアホらしい
ですか?  またはもっとスマートな方法がありますか?  というのが質問
です。

;; 何も暗号化する必要は無いと言う点ではアホらしいのですが、そう
;; いう意味ではなくて。
;; 最近では `ssh -C HOST /usr/lib/sendmail ARGS' というものを
;; sendmail コマンドの代わりに使っていました。

実はこういう接続では改行が CRLF ではなくて LF だけになってしまう
ので smtp.el を少し改造する必要があるのですが、それをやる価値が
あるものかどうかわからないのでした。

なお、このサーバーが STARTTLS とか SMTPS といったものをサポート
しているかどうかわかりません。それにレンタルホスト会社のサービス
目録にも、そういうことは書かれていません。

もし、これはこれで良いのではというお答えがいただけたら、あるいは
何も反応が無かったら、smtp.el に以下のようなものを追加しようと思っ
ています。

(defvar smtp-end-of-line "\r\n"
  "*String to use on the end of lines when talking to the SMTP server.
This is \"\\r\\n\" by default, but should be \"\\n\" when using and
indirect connection method, e.g. bind `smtp-open-connection-function'
to a custom function as shown below:

\(setq smtp-open-connection-function
      (lambda (name buffer host service)
	(start-process name buffer \"ssh\" \"-C\" host
		       \"telnet\" \"-8\" host service)))")
-- 
Katsumi Yamaoka <yamaoka @ jpl.org>




More information about the Emacs-mime-ja mailing list