詳しくは書かない。
DavMail を PC にインストールして、それ経由で Outlook Web Access (OWA) にアクセスする。
1. DavMail をインストール
下記サイトからダウンロードして、インストールする。
DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange Gateway
2. DavMail の設定。
OWA (Exchange) URL: を設定するぐらい。
3. 証明書を追加
コマンドプロンプトで下記を実行。
(Java のパスは適宜読み替える)
> cd "C:\Program Files (x86)\Java\jre1.8.0_51\bin" > keytool -import -alias "[CA 名]" -keystore "C:\Program Files (x86)\Java\jre1.8.0_51\lib\security\cacerts" -trustcacerts -file [PKI_FILE_NAME].cer -storepass changeit
4. Mew の設定
抜粋。DOMAIN\\USER は適当に変更。
("smtp-server" . "127.0.0.1")
("smtp-port" . "1025")
("smtp-user" . "DOMAIN\\USER")
("pop-server" . "127.0.0.1")
("pop-port" . "1110")
("pop-auth" . pass)
("pop-user" . "DOMAIN\\USER")
■ 課題
- Outlook から送信されたメールの Date: ヘッダの time zone が +0000 になっている。
- 機種依存文字付きメールを返信すると、文字化けする。
■ 参考
DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange Gateway
http://osdn.jp/projects/sfnet_davmail/
■ 2015/08/15 追記
■ Message 画面で、ローカル時刻を表示する設定
;; ローカル時刻を表示
(defvar mew-my-message-date-overlay nil)
(defun mew-my-message-date-overlay ()
(or
mew-my-message-date-overlay
(setq mew-my-message-date-overlay
(make-overlay (point-min) (point-min)))))
(defun mew-my-message-display-local-date ()
(condition-case err
(save-excursion
(goto-char (point-min))
(when (re-search-forward (concat "^" mew-date: " *\\(.*\\)") nil t)
(let* ((original (match-string 1))
(start (match-beginning 1))
(end (match-end 1))
(ov (mew-my-message-date-overlay))
(time (parse-time-string original))
(orig-tz (nth 8 time))
(tz (nth 8 (decode-time (current-time))))
(date (apply 'encode-time time))
(local (mew-time-ctz-to-rfc date)))
(unless (equal orig-tz tz)
(let ((new (format "%s == %s" local original)))
(move-overlay ov start end (current-buffer))
(overlay-put ov 'display new))))))
(error
(message "%s" err))))
(add-hook 'mew-message-hook 'mew-my-message-display-local-date)
■ summary mode で、ローカル時刻を表示する設定
mew-scan.el を変更することで対処。
(defun mew-summary-form-time ()
"A function to return a message time, HH:MM"
(let ((s (MEW-DATE)))
(setq s (timezone-make-date-arpa-standard
(if (or (string= s "")
(not (string-match mew-time-rfc-regex s)))
(mew-time-ctz-to-rfc
(mew-file-get-time (mew-expand-msg (MEW-FLD) (MEW-NUM))))
s)))
(if (string-match mew-time-rfc-regex s)
(format "%02d:%02d"
(or (mew-time-rfc-hour) 0)
(or (mew-time-rfc-min) 0))
"00:00")))
(defun mew-summary-form-date ()
"A function to return a date, MM/DD."
(let ((s (MEW-DATE)))
(setq s (timezone-make-date-arpa-standard
(if (or (string= s "")
(not (string-match mew-time-rfc-regex s)))
(mew-time-ctz-to-rfc
(mew-file-get-time (mew-expand-msg (MEW-FLD) (MEW-NUM))))
s)))
(if (string-match mew-time-rfc-regex s)
(format "%02d/%02d"
(mew-time-mon-str-to-int (mew-time-rfc-mon))
(mew-time-rfc-day))
"")))
■ 追記: 2020/07/31 追記 Office365 EWS サーバに移行したときのメモ
参考: http://davmail.sourceforge.net/faq.html
会社の方針で、Office365 EWS に移行することになりました。
DavMail の OWA (Exchange) URL の設定を下記に変更するぐらいでした。
https://outlook.office365.com/EWS/Exchange.asmx
それにしても、2020 年 10 月 13 日 に Office 365 で EWS 利用時の
Basic 認証 (基本認証) が廃止予定 という記事が気になるなぁ。
■ 追記: 2021/01/22 追記 リモートワークで、自宅から Office365 EWS サーバに接続できなくなったときのメモ
コロナ禍で、リモートワークが増えました。しばらくの間、自宅からも EWS サーバに接続できていたのですが、
認証が失敗するようになりました。
ログを確認すると Authentification failed: invalid user or password となる。
Exchange Protocol の設定を EWS から O365Interactive (Office 365 interactive Authentification) に変更して、
アクセスし、Microsoft の認証をしてから、DavMail からのアクセスを許可。空白ページになったところで、
表示されている URL をコピペして DavMail に貼り付けると認証が成功するようになりました。
セキュリティポリシーが変わったんだろうか。
● Outlook, Exchange, Emacs, Mew, mew, 使えん, Outlook Web Access, OWA, DavMail, POP, IMAP, Office365 EWS, 認証失敗, invalid user or password

1 件のコメント:
「2015/08/15 追記」利用させていただいてます。とてもよいです。ありがとうございます!!
コメントを投稿