[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:
ウェブメ
ールの自動取得
- From: Hideyuki SHIRAI (
白井秀行
) <shirai@xxxxxxxxxxx>
- Date: Sun, 13 Feb 2005 07:55:00 +0900 (JST)
- X-ml-name: emacs-w3m
- X-mail-count: 07564
- References: <culavi$s77$1@sea.gmane.org>
From: open@to.707.to <open@to.707.to> さん曰く
Subject: [emacs-w3m:07563] ウェブメールの自動取得
Message-ID: <culavi$s77$1@sea.gmane.org>
Date: Sun, 13 Feb 2005 01:32:37 +0900
> ウェブメールを自動的に取得することが出来ないかと考え、キーボードマクロ
> や w3m- から始まる関数を使った elisp を書いてみているのですが、どうも
> うまく行きません。
>
> 「メールを利用する」というリンクを押すと、SSLでユーザー名、パスワード
> を入力する小さいボックスが出てくるようなHPで、emacs-w3mではミニバッファ
> で 「user: 」とか「password: 」とか尋ねられるような風になっています。
> ここで入力すれば、ちゃんとemacs-w3mでもログイン、ブラウズ出来ます。
>
> しかし、この部分を通り抜けることが、キーボードマクロでは出来ないようで、
> 通りぬけた時のマクロを記録して再現しても、やはり聞かれてしまいます。
例としてですが、ぼくが mixi に自動でログインするのはこうやってい
ます。同じ方法で Yahoo だろうが excite だろうがログインできるの
でご参考まで。
w3m-my-post-insert() の第一引数は、その form の上で
M-x list-text-properties-at した 'w3m-form-field-id の値です。
(setq my-id (get-text-property (point) 'w3m-form-field-id))
などでも調べることができます。
# Passwd 書いちゃうので思いっ切り注意。
# (setq w3m-mixi-passwd nil) しておけば、paswd は手入力になりま
# す。
;; mixi に簡単に login してみる。
(defvar w3m-mixi-autologin t "*Use auto login.")
(defvar w3m-mixi-login "login-name" "*Mixi login name.")
(defvar w3m-mixi-passwd "passwd" "*Mixi passwd.")
(add-hook 'w3m-display-hook 'w3m-mixi-login)
(defun w3m-mixi-login (&optional url)
"http://mixi.jp/ に自動で login する。"
(interactive)
(setq url (or url w3m-current-url))
(when (and url
(string-match "^http://mixi\\.jp/$" url))
(let (pos)
(when w3m-mixi-login
(w3m-my-post-insert "fid=2/type=text/name=email/id=8"
w3m-mixi-login))
(when w3m-mixi-passwd
(w3m-my-post-insert "fid=2/type=password/name=password/id=9"
w3m-mixi-passwd 'invisible))
(setq pos (w3m-my-tp-any (point-min) (point-max)
'w3m-form-field-id
"fid=2/type=image/name=/id=11"))
(when (and pos w3m-mixi-login w3m-mixi-passwd)
(goto-char pos)
(when w3m-mixi-autologin
(w3m-submit-form)
(message "Auto login..."))))))
(defun w3m-my-post-insert (fid str &optional invisible)
(let (pos act)
(when (setq pos (w3m-my-tp-any (point-min) (point-max)
'w3m-form-field-id fid))
(goto-char pos)
(when (setq act (w3m-action))
(w3m-form-put (nth 1 act) (nth 2 act) (nth 3 act) str)
(w3m-form-replace str invisible)))))
(defun w3m-my-tp-any (beg end prop value)
(while (and beg (< beg end)
(not (equal value (get-text-property beg prop))))
(setq beg (next-single-property-change beg prop nil end)))
(if (eq beg end) nil beg))
--
白井秀行 (mailto:shirai@meadowy.org)