[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: Meadowのプロセス名を変更するには
- X-ml-count: 7343
- Subject: Re: Meadowのプロセス名を変更するには
- From: "Shun-ichi GOTO" <shunichi.goto@xxxxxxxxx>
- Date: Thu, 13 Sep 2007 16:56:22 +0900
07/09/13 に TSURUDA Naoki<tsuruda.naoki@xxxxxxxxx> さんは書きました:
> > であれば、relay.el で目論見は達成できそうで、あとはmew からそれが呼ばれる
> > ように設定を正しく行えばよいはずです。
>
> mew-smtp.el を見ると open-network-stream を使用せずに自前の
> mew-open-network-stream を定義しているようです。
あぁなるほど。mew は make-network-process<f>を使ってるんですね。
relay.el でのadvice の設定は open-network-stream を対象にしていますので、
make-network-process<f> で接続するアプリケーションには通用しなかったわ
けですね。
> なので、mew-open-network-stream に対して以下の様に advice をしてみました。
> # 見よう見まねでやっているので、間違ってないか不安ですが...
mew-open-network-stream に advice をかける方法の変わりに以下のようにし
てみてはどうでしょうか。行なうのは mew-smtp.el のロード後に。とりあえず
試すなら、meadow 起動後、M-x mew して M-x load-library mew-smtp の後で
あれば確実かな。
(defalias 'mew-open-network-stream 'open-network-stream)
# この場合は open-network-stream へのadvice はするが
# mew-open-network-stream へのadvice は行なわない方法。
この状態でmew からメール送信を試してみる。
別案として:
実際におきてる問題としては、mew-smtp-process-send-string は今回のような
外部プロセスを使った接続は想定していないことが原因でしょう。
とういのも mew としては process-status が open になることを期待しますが、
relay.el で繋いだ場合は外部プロセスなので process-status は run
になります。そのため mew-smtp-process-send-string<f> で "SMTP timeout" と
いわれてしまうのでしょう。
なので mew-smtp.el に以下の修正をしたらうまく行くかも。
# この修正 + mew-open-network-stream に advice する、という方法
diff -r 65c095b3124d mew-smtp.el
--- a/mew-smtp.el Thu Sep 13 16:44:36 2007 +0900
+++ b/mew-smtp.el Thu Sep 13 16:45:58 2007 +0900
@@ -357,7 +357,7 @@
(defun mew-smtp-process-send-string (pro &rest args)
(let ((str (apply 'format args)))
(mew-smtp-debug "=SEND=" str)
- (if (and (processp pro) (eq (process-status pro) 'open))
+ (if (and (processp pro) (member (process-status pro) '(open run)))
(process-send-string pro (concat str mew-cs-eol))
(message "SMTP time out"))))
P.S.
できれば smtp.el のように、接続関数をユーザ変数にしておいてもらえるとい
いのだがな > mew
--
Shun-ichi GOTO