[mew-dist 28245] Re: smtp送信失敗で Dcc: が消える

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2008年 3月 31日 (月) 12:20:44 JST


水口さん、
遅くなってすいません。

> ・+queue でメッセージ内容を Message バッファに表示させると、Dcc: も
> Fcc: も X-Mew: も無い。
> 
> ・ mqiファイルは "[nil nil nil nil nil nil nil nil]" の 1行だけになる。

分ったような気がします。

水口さんは、Submission → SMTP のフォールバック機能を設定しており、いつ
もフォールバックしているのだと思います。(つまり、毎回無駄なことをしてい
る。)

Submission のときのプロセス名と SMTP のときのプロセス名は異なります。
フォールバックして、SMTP のときにエラーが発生した場合、SMTP のときのプ
ロセス名からプロセスを割り出して、状態を保存する必要があります。しかし、
今の Mew だと Submission のときのプロセス名を使っているように思えます。
なので、状態が全部 nil になるのでしょう。

以下にパッチをつけますので、試して下さい。

うまくいったら、水口さんの設定はフォールバックしないように戻すのがいい
かと思います。

なお最近、フォールバックというアイディアは、あまりよくないという気がし
ているので、この機能は削るかもしれません。

--かず

Index: mew-smtp.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-smtp.el,v
retrieving revision 1.148
diff -c -r1.148 mew-smtp.el
*** mew-smtp.el	18 Mar 2008 03:04:58 -0000	1.148
--- mew-smtp.el	31 Mar 2008 03:19:37 -0000
***************
*** 25,31 ****
      "qfld" "messages"
      ;; parameters used internally and should be initialized
      "string" "error" "auth-selected" "timer" "cont" "from" "sender"
!     "done" "imapp" "capa" "fallback"))
  
  (mew-info-defun "mew-smtp-" mew-smtp-info-list)
  
--- 25,31 ----
      "qfld" "messages"
      ;; parameters used internally and should be initialized
      "string" "error" "auth-selected" "timer" "cont" "from" "sender"
!     "done" "imapp" "capa" "fallback" "fallbacked"))
  
  (mew-info-defun "mew-smtp-" mew-smtp-info-list)
  
***************
*** 513,518 ****
--- 513,519 ----
        (mew-smtp-set-auth-list pnm (mew-smtp-auth-list case))
        (mew-smtp-set-status pnm "greeting")
        (mew-smtp-set-fallback pnm fallback)
+       (mew-smtp-set-fallbacked pnm fallbacked)
        ;;
        (set-process-buffer process nil)
        (set-process-sentinel process 'mew-smtp-sentinel)
***************
*** 613,618 ****
--- 614,620 ----
  	 (done (mew-smtp-get-done pnm))
  	 (imapp (mew-smtp-get-imapp pnm))
  	 (error (mew-smtp-get-error pnm))
+ 	 (fallbacked (mew-smtp-get-fallbacked pnm))
  	 (sshpro (mew-smtp-get-ssh-process pnm))
  	 (sslpro (mew-smtp-get-ssl-process pnm)))
      (save-excursion
***************
*** 623,629 ****
  	  ;; A message file is not inserted at the beginning of the SMTP
  	  ;; session.
  	  (set-buffer buf)
! 	  (mew-smtp-queue case error))
  	(mew-smtp-log pnm error))
         (done
  	(message "Sending in background...done"))
--- 625,631 ----
  	  ;; A message file is not inserted at the beginning of the SMTP
  	  ;; session.
  	  (set-buffer buf)
! 	  (mew-smtp-queue case error fallbacked))
  	(mew-smtp-log pnm error))
         (done
  	(message "Sending in background...done"))
***************
*** 631,637 ****
  	(if (null buf)
  	    (message "SMTP connection is lost")
  	  (set-buffer buf)
! 	  (mew-smtp-queue case "SMTP connection is lost"))))
        (mew-info-clean-up pnm)
        (if (and (processp sshpro) (not mew-ssh-keep-connection))
  	  (process-send-string sshpro "exit\n"))
--- 633,639 ----
  	(if (null buf)
  	    (message "SMTP connection is lost")
  	  (set-buffer buf)
! 	  (mew-smtp-queue case "SMTP connection is lost" fallbacked))))
        (mew-info-clean-up pnm)
        (if (and (processp sshpro) (not mew-ssh-keep-connection))
  	  (process-send-string sshpro "exit\n"))
***************
*** 646,654 ****
  ;;; Queuing
  ;;;
  
! (defun mew-smtp-queue (case err)
    ;; Must be in a buffer where a message is contained.
!   (let* ((pnm (mew-smtp-info-name case))
  	 (qfld (mew-queue-folder case))
  	 (oname (buffer-name))
  	 (work (buffer-file-name))
--- 648,656 ----
  ;;; Queuing
  ;;;
  
! (defun mew-smtp-queue (case err &optional fallbacked)
    ;; Must be in a buffer where a message is contained.
!   (let* ((pnm (mew-smtp-info-name case fallbacked))
  	 (qfld (mew-queue-folder case))
  	 (oname (buffer-name))
  	 (work (buffer-file-name))



Mew-dist メーリングリストの案内