.emacs-my
changeset 890 7558a3f8a3d9
parent 889 7f24172c2c4b
child 891 e895f2685f1e
--- a/.emacs-my	Fri Jul 06 22:11:21 2012 +0300
+++ b/.emacs-my	Sun Jul 08 21:39:10 2012 +0300
@@ -1270,6 +1270,23 @@
 ;; Kill message buffer after mail send. You always can use C-c C-s to preserve it.
 (setq message-kill-buffer-on-exit t)
 
+(defun my-message-save ()
+  "Store message in `gnus-article-save-directory' after
+successful sending. It is possible that mail rejected and I lost
+it completely, this func save it for me."
+  (unless (eq major-mode 'message-mode)
+    (error "Attempt to call my-message-save in non message-mode buffer"))
+  (make-directory gnus-article-save-directory t)
+  (let ( (buf (current-buffer))
+         (field-to (message-fetch-field "To"))
+         (field-subject (message-fetch-field "Subject"))
+         file )
+    (setq file (concat gnus-article-save-directory "/" (format-time-string "%F_%T") "_" field-to "_" field-subject))
+    (with-temp-file file
+      (insert-buffer buf)
+      )) )
+(add-hook 'message-sent-hook 'my-message-save)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (message "smtp, smtpmail")