DoCoMo imap

DoCoMoのメールをimapで読む方法

前準備

まず、dアカウントでドコモメールを利用 できるようにしないといけない。
これやってなかったせいでかなり時間を無駄にした orz

どう設定するのが正解なのかよく分からんのだが、スマホからWiFi切ってモバイルデータ通信でMyDoCoMo行けば確実っぽい。
PCからMyDoCoMoログインしても設定が見つからなかった。

MyDoCoMoからメール・パスワードなどの設定 -> メール設定 -> dアカウント利用設定の確認/変更 から

dアカウントでドコモメールを利用 -> 利用する をチェック

WiFiで見に行くと最後でWiFi切って最初からやり直せ言われる orz 実に分かりにくいが一度設定すればいいだけで滅多にやらない設定だからこんなもんか

DoCoMoの説明によるとSSL(over SSL3.0)とあるがSSL3.0大丈夫なのか?

wanderlust on emacs

普通にwanderlust 起動してからgで
%INBOX:"user@docomo.ne.jp"/login@imap.spmode.ne.jp:993!

で受信ボックスが見れるか確認

見れたら ~/.folders に
%:"user@docomo.ne.jp"/login@imap.spmode.ne.jp:993!/

と書いておけば階層全部見れるようになる。

送信側はたぶんPCから送信しないので割愛

その他

Becky! とか Windows10 標準メーラーでは、そのまんま設定すれば動いたようだ。
最初に延々と失敗したのは最初のdアカウント設定してなかったかららしい。

これでちょっとはフォルダの整理とかできるかなと思ったが、DoCoMoメールはimapの階層化には対応していないっぽい。残念。

やっちまった

 色々systemをいじっていたら、起動時のプロセスがおかしくなっていたらしく、起動できなくなっていた。

 そのせいで家人の仕事に影響出しまくり

 申し訳ない

 多分、systemd-networkd.serviceが起動しなかった。
 1分30秒でタイムアウトするのだが、また再起動しようとして失敗する、の繰り返し。

 結局時間までに動かなくて、仕事に大きな迷惑をかけてしまった m(_ _)m

 多分、socket関係の依存にnetworkが紛れ込んでいたためだと思う。
 /etc/systemd/system/ の下の *network* ファイルの依存をとりあえず消して起動したら動いた。

 ちなみにこのサーバーはxenの仮想マシンなので、dom0にログインすればリモートからでもいじれる。
 これ自体は役に立ったパターンなのだが、こういう複雑なことをしているからコケやすい、のかもしれない。
 前から、kernel 4.4.xじゃないとうまく動かなくて、最近なぜか4.13.xで動いたのでそれでやっていたのだが、それでも変なタイミングで止まってしまう。
 どうもディスクに負荷をかけると死ぬっぽい。
 単に準仮想化したいだけなのでxenじゃなくてもいいので、dockerとかsystemd-nsspawnに置き換えたいのだが、いざ変えようとするとゲスト側もそれなりにいじらなくちゃいけなくて、そこがめんどい。
 特にネットワーク関係がめんどくて、ブリッジ自体はxenでもやっているのだが、nspawnだとeth0がhost0とかになるっぽくて、簡単に置き換えれそうにないので現状放置。

 ていうか今こんなことやっている暇がない日程なんだけどなぁ・・・
 忙しい時に限って忙しくなるマーフィーの法則を実感しつつとりあえず寝る。

journald-remote

 結局よくわからないままであるが何となく転送されたっぽいのでメモ

 今、rsyslogでsyslogを転送しているのだが、もういい加減にsystemd-journalに移行したい。
 でも転送方法がわからなくて色々やっていた。
 systemd-jounarl-remote.serviceとsystemd-jounal-upload.serviceとか使えばよいのはわかっていたのだが、なんかうまくいってなかった。

 受け取り側のサーバーにDNS名降っておく。syslog.daionet.gr.jpにしておく

 両方のマシンにsystemd-journal-remoteをインストール

sudo apt install systemd-journal-remote

 受け取り側で、
パッケージをローカル用にコピーして編集する。
 systemctl edit systemd-journal-remote.service とかでもできそうな気がしたんだけど、overrideであって書き換えには向かないっぽい。
 同じエントリが2つあると怒られてしまうので全部コピーして一部編集する。
# 直接/lib/systemd/system/を書き換えると、アップデートで全部消えるのでローカル用は/etc/systemdにコピーする仕様らしい

cp /lib/systemd/system/systemd-journal-remote.service /etc/systemd/system/
cp /lib/systemd/system/systemd-journal-remote.socket /etc/systemd/system/

/etc/systemd/system/systemd-journal-remote.service の [Service] 内の
ExecStart=/lib/systemd/systemd-journal-remote –listen-http=-3 –output=/var/log/journal/remote/
# –listen-https=-3 を –listen-http=-3にする
 httpsにしたかったけどローカルだし証明書面倒だしとhttpにしてしまうことにした。

/etc/systemd/system/systemd-journal-remote.socket の [Socket] 内の
ListenStream=[2001:0db8::1]:19532
BindIPv6Only=yes
# ユニークローカルアドレスにするとかFWで守るとかして適当に保護。
# ListenStream=syslog.daionet.gr.jp:19532 とかやったらエラーになった。IPアドレスじゃないとダメっぽい

 systemctl start systemd-journal-remote.socket
・ここは.serviceじゃなくて.socketを起動する。起動時有効にするのも.socket

送信側で、
/etc/systemd/journal-upload.conf

[Upload]
URL=http ://syslog.daionet.gr.jp:19532

systemctl start systemd-journal-upload.service

 これで受信側の/var/log/journal/remote にコピーされた。
 全部のログをコピーしようとして異常に時間がかかったりしたので、あれこれやってなんとか切り抜けた(ぉ

 と。2つのマシンからjournalをコピーできたのはいいのだが。
 見る方法がわからないというオチが(滝汗

 とりあえずjournalctl –merge _HOSTNAME=hoge で見れるっぽいのだが、なんだかなぁ。

 blog書きながら調べてたらどうもjournalはコピーして使うというよりも、systemd-journal-gatewaydを使ってリモートに読む、が正解っぽい。
 でも死んだときに手元にログ欲しかったりしないでもないんだけどなぁ。あとブラウザだとめんどい(ぉ

2017/11/16 追記
 systemctl edit でうまく編集できない件について

 ExecStartとかListenStreamが複数行あるのが問題だったのだが、空行入れると以前のがキャンセルされるらしい。
ので、override.confに

[Socket]
ListenStream=
ListenStream=[2001:0db8::1]:19532
BindIPv6Only=yes

と一旦キャンセルかけてから書けば良いっぽい。

 日本語マニュアル欲しい……

fetchmail on systemd

昔から色々やってうまくできなかったのがやっとできた。

# 難しいわけじゃなくて理解してなかっただけだがw

debian/unstable/busterで、
/etc/systemd/user/fetchmail@.service :

[Unit]
Description=A remote-mail retrieval utility
After=network.target postfix.service

[Service]
Type=forking
ExecStart=/usr/bin/fetchmail -d 2000
ExecStop=/usr/bin/fetchmail --quit
RestartSec=1

[Install]
WantedBy=multi-user.target

 あとは一般ユーザーで
systemctl --enable now fethchmail@user.service
で良いようだ。
 最初、User=%IとかGroup=%Iとか付けてて失敗した。

fetchmail@user.service: Failed to determine supplementary groups: Operation not permitted
fetchmail@user.service: Failed at step GROUP spawning /usr/bin/fetchmail: Operation not permitted

等のエラーが出て、起動しなかった。
userユニットの場合は付けちゃダメっぽい。

aptとw3mとlibgpm

最近aptのbuildに失敗するなぁと思っていたのだが、実はw3mの問題だったというお話。

現在、gpmにはexperimentalが来ていて、1.20.7-1と1.20.4-6.2があるのだが、libgpmに依存しているw3mとかemacsにはバージョン条件が入っていなくて、experimentalだと動かない、という問題がある。

で、aptのbuild-depにはw3mが入っていてw3mが使われているのだが、そこでw3mを起動しようとするとエラーになっていたのだが、見た目エラー内容がわからないために何でエラーになっているのかわからない状態になっていた。

たまたまhtmlで書かれたメールをemacsのwanderlustで見ようとしたら、w3mでフォーマットしようとして失敗する、というのを発見してあれ?と思ったのがきっかけ。

とりあえずlibgpm-devとlibgpm2をunstable 1.20.4-6.2にしてみたらaptのbuildもできたし、htmlメールも(一応)見れるようになった。