2013年3月14日の日記の2番目の記事へのコメント

Emacs Lisp

久しぶりにこんなの.emacsに書いたり。単にMewで送信元+SMTPサーバの設定をキー一発で切り替えるだけの処理ですが、メールを書き始めた後で設定を変えたくなったとき用のバッファの編集処理を書くのにえらい時間かかっちゃいました。というか、ループの処理とかこんなんでいいんだっけ・・・(;´Д`)

    (defun nsk-set-mew-smtp-server-conf1 ()
      (interactive)
      (message "Mew Configuration 1")
      (setq mew-from "...")
      (setq mew-dcc "...")
      (setq mew-smtp-server "...")
      (setq mew-smtp-ssl t)
      (setq mew-smtp-user "...")
      (setq mew-smtp-ssl-port "465")
      (setq nsk-mew-smtp-server 'conf1)
      )

    (defun nsk-set-mew-smtp-server-conf2 ()
      (interactive)
      (message "Mew Configuration 2")
      (setq mew-from "...")
      (setq mew-dcc "...")
      (setq mew-smtp-server "...")
      (setq mew-smtp-ssl t)
      (setq mew-smtp-user "...")
      (setq mew-smtp-ssl-port "465")
      (setq nsk-mew-smtp-server 'conf2)
      )

    ;; set default
    (nsk-set-mew-smtp-server-conf1)

    (defun nsk-toggle-mew-address ()
      (interactive)
      (if (eq nsk-mew-smtp-server 'conf1)
          (nsk-set-mew-smtp-server-conf2)
        (nsk-set-mew-smtp-server-conf1)))

    (defun nsk-update-mew-header ()
      (interactive)
      (save-excursion
        (goto-char (point-min))
        (catch 'header-loop
          (while t
            (setq line-start (point))
            (end-of-line)
            (setq line-end (point))
            (setq line-str (buffer-substring-no-properties line-start line-end))
            (if (string-match "^----$" line-str)
                (throw 'header-loop t)
              (if (string-match "^From: " line-str)
                  (progn
                    (beginning-of-line)
                    (forward-char (length "Form: "))
                    (delete-region (point) line-end)
                    (insert mew-from))
                (if (string-match "^Dcc: " line-str)
                    (progn
                      (beginning-of-line)
                      (forward-char (length "Dcc: "))
                      (delete-region (point) line-end)
                      (insert mew-dcc)))))
            (if (eobp)
                (throw 'header-loop t)
              (forward-line 1))
            ))))
      

    (defun nsk-toggle-mew-address-and-update-mew-header ()
      (interactive)
      (nsk-toggle-mew-address)
      (nsk-update-mew-header)
      )

    (add-hook 'mew-init-hook
              '(lambda ()
                 (define-key mew-addrbook-mode-map "\C-cs" 'nsk-toggle-mew-address)
                 (define-key mew-draft-mode-map "\C-cs" 'nsk-toggle-mew-address-and-update-mew-header)
                 (define-key mew-header-mode-map "\C-cs" 'nsk-toggle-mew-address)
                 (define-key mew-message-mode-map "\C-cs" 'nsk-toggle-mew-address)
                 (define-key mew-summary-mode-map "\C-cs" 'nsk-toggle-mew-address)))

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2013年3月14日の日記の2番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2013年3月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ