- blogs:
- cles::blog
IMAP over SSL/TLS のデバッグを行うスクリプト
perl
systemmanagemant SMTP Auth /w STARTSSL のデバッグを行うスクリプトを書いたので、これと対になる IMAPs に対するデバッグスクリプトも作ってみました。
こちらは Mail::IMAPClient というライブラリを使っているので、以下のような感じであらかじめモジュールをインストールしておく必要があります。
書いたスクリプトは以下のような感じ。
imapsLoginDebug.pl
コマンドラインの引数として、サーバ名、ポート番号、ユーザー名、パスワードの4つを取ります。
# ただ、ポート番号は使っていないので無視されます。
実際の動作としては以下のような感じでしょうか。
IMAP はちょっとプロトコルが複雑なので、手動だと操作がちょっと難しいんですよね。
SMTP Auth /w STARTSSL のデバッグを行うスクリプト
perl
systemmanagemant 仕事場のメールサーバが Office 365 に切り替わったのですが、なぜか SMTP だけ認証が効かなかったので状況を調査するための簡単なスクリプトを書いてみました。
昔は通信が平文だったので、SMTP のデバッグも telnet コマンドでイケましたが、今は TLS で暗号化されているのが標準という時代なので、openssl を使う必要が出てきます。今回は SMTP Auth の部分も必要だったので、なるべくマニュアル作業が少なくなるように Perl でスクリプトを書いてみました。
Perl はしばらく触れていなかったので、すっかり時代に取り残されてしまっている感じですが、標準の Net::SMTP ライブラリでも SMTP Auth とか、STARTSSL なんかに対応しているんですね。
smtpStartsslDebug.pl
コマンドラインの引数として、サーバ名、ポート番号、ユーザー名、パスワードの4つを取ります。
実際に実行してみると、以下のような感じで接続の様子が表示されます。
# 実際のパスワード等についてはダミーに書き換えてあります。
plenv で Perl 環境を作る
perl 以前から Ruby は rbenv というソフトウェアを使って、自由にバージョンを切り替えたりできるようにしているのですが、同じことを Perl で実行できる plenv というソフトウェアがあることが分かったのでメモ。
† インストール方法
以下のような感じでインストールできるのですが、rbenv にそっくりですね。
Perl の特定のバージョンのインストールや切り替えについても rbenv とほぼ同様の操作でイケます。
CPAN で依存モジュールのインストール時にプロンプトが出ないようにする
perl CPAN でモジュールをインストールしようとすると、デフォルトでは依存するモジュールをインストールするか yes/no で選択するプロンプトが出るようになっていると思います。依存性が少ない場合はそれほど気になりませんが、依存性が多いモジュールをインストールする場合には何度も yes と打ち込んでいく必要があるわけですが、これがなかなかに面倒なので、プロンプトなしで自動的にインストールするようにする方法を調べたのでメモ。
CPAN を起動し、下記のコマンドを入力して、CPAN の設定を変更すればOKです。
ちなみにこの o コマンドで設定できる項目については「Config Variables - CPAN - search.cpan.org」で解説されているので、一度目を通しておくと良いです。
Regexp::Assemble で正規表現を生成する
perl
regex 以前、Regexp Assemble For PHP は使ったことがありましたがオリジナルの Regexp::Assemble は使ったことがなかったのでちょっと動かしてみました。
このモジュールを使えば、フクロウ本とにらめっこしなくても、複雑な正規表現を効率よく組み立てることができます。
サンプルほとんどそのままですが、UTF-8が通るようにしてあります。
以下、実行例。
[Regexp::Assemble で正規表現を生成する の続きを読む]
perlに1秒未満のsleepをさせるには
perl 久しぶりにperlのスクリプトを書いていたら、sleepの引数がfloatにできなくてはまったのでメモ。
test.pl
これを実行すると、実際には1秒しかsleepしてくれません。
この問題についてググってみるとTime::HiRes*1を使えばいいことが分かったので、モジュールをインストールして下記のようにプログラムを書き換えてみました。
test2.pl
これでsleepを小数点対応にオーバーライドすることができました。
AddressDB.pdb を .vcf ファイルに変換する
ios
palm
perl 先ほどのエントリでカレンダーは取り込めたので、次はアドレス帳の取り込みに挑戦です。
iPod TouchはvCard形式のデータ(.vcf)を取り込むことができることが分かったので、DatebookDB.pdbの時と同じようにAddressDB.pdbを.vcfに変換するスクリプトを探して見たところ「Tip: Perl script to turn AddressDB.pdb into a vcar... - Palm Support Community」で紹介されているAddressDB2VCard.plが使えそうだったので、これを使うことにしました。
が、一筋縄ではいかなかったのでその顛末をメモ。
[AddressDB.pdb を .vcf ファイルに変換する の続きを読む]
DatebookDB.pdb を ics ファイルに変換してGoogleカレンダーにインポート
ios
palm
perl
scheduler iPod Touch はいわゆるPDA的な使い方ができる端末なのですが、PDAという単語で僕は2000年~2004年頃にかけてPalmをかなり使い込んでいたことを思い出しました。既にPalmの実機は手元にはないのですが、家の中を探したところデータのバックアップを取ったメモリが残っていたので、DatebookDB.pdb から当時のスケジュールデータを復元してみることにしてみました。
なんとかics形式まで持っていければ、Googleカレンダーに取り込むことができるので、何か方法はないかと調べたところ「Palm データベースの iCalendar 形式への変換 | yendo weblog」に掲載されている、 pdatebook2ical.pl がそのものズバリの作業をしてるようだったので、今回はこれを使います。
まず、CPANのモジュールが必要なのでインストールします。
スクリプトはファイルの変換が ~/.jpilot/DatebookDB.pdb → ~/.evolution/calendar/local/system/calendar.ics に固定されているので、これを下記のようにカレントディレクトリのファイルが処理対象になるように変更しておきます。
あとはDatebookDB.pdbをカレントディレクトリに置き、下記のコマンドを実行してやると calendar.ics が得られるので、これをGoogleカレンダーにインポートしてやればOKです。いきなり、既存のカレンダーに予定をマージするのは危険なので、できればインポート用に別のカレンダーを作ってからマージするのがオススメです。
復元されたカレンダー情報は10年前というとちょうど大学3年生の時で、駆け出しITエンジニア&就職活動が始まるちょっと前という感じでした。眺めていると思わず目頭が熱くなるような記録もあり、当時のエピソードが昨日のことのように思い出されたものもありました。当時から考えれば、10年後にこんなことになってるとは夢にも思わなかったなぁ。
Thunderbirdのアドレスブックからメールアドレスを取り出す
perl
thunderbird 最近spamがまた酷くなってきたので、フィルタリングのルールを強くしたら、仕事関係のメールがspamに振り分けられるという問題が発生してきたので、メーラーのアドレス帳からメールアドレスを拾ってホワイトリストを作ろうと思って、Thunderbirdのアドレス帳からメールアドレスを抽出するスクリプトを書いてみました。
Thunderbirdのアドレスブックは.mabというちょっと変な形式になっています。どうやら歴史的な経緯でこの形式が使われているようなのですが、なかなか厄介な形式のようです。
Mork の謎 Firefox Hacks 翻訳日記/ウェブリブログ
Mork の何が悪いのか?
1. Mozilla 以外には使われていない、独自仕様のデータフォーマット。
2. 仕様書がない (に等しい) ので解析が困難。
3. 開発者がすでに退社しており、継続的な開発・修正が困難。
4. ファイルの一部が破損したときに手作業での修復が困難。
5. 開発者の言によれば、「テキストファイル形式を使うのは馬鹿げている、と思ったがそうしろと命令されたから作った」(前出 WebArchive のページ)
これを扱うためのライブラリとしてCPANにFile::Morkというモジュールがあり、すでにこれを使ってスクリプトを書いた人もいるようなので*1、そのプログラムを参考(というか、ほとんどそのまま)にスクリプトを作ってみました。
[Thunderbirdのアドレスブックからメールアドレスを取り出す の続きを読む]
XML-RPCを使ってTracのチケットに添付ファイルを投げ込む(Perl編)
trac
perl 仕事場に導入したTracはかなり活用されてきていて、導入した自分としては嬉しい限りです。僕はコンソール作業の記録をしばしばTracに転記しているのですが、そうするとコンソールとウェブブラウザを行ったり来たりしなければならないので、それがちょっと面倒になってきました。
ということで、ブラウザを開かずに、Linux上のコンソールのコマンドで特定のチケットに添付ファイルを投げ込むスクリプトを書いてみました。Tracには他のシステムと連携するためにXML-RPCというインタフェイスが用意されているので、これをPerlから叩いてみます。XML-RPCについてはNucleus関連の開発でも散々いじったので自分としてはPHPで書くのが一番得意なのですが、今回はPerlで開発することにします。
[XML-RPCを使ってTracのチケットに添付ファイルを投げ込む(Perl編) の続きを読む]- sadpkv
- CACHEMANAGER.phpというのはどうだろうかと
- pairb1m
- Lightning のToDoリストを複数のPCで共有できるアドオン
- majodca
- 九州旅行から帰ってきました
- majodca
- 九州旅行から帰ってきました
- hot534
- yum を使って OpenVPN をインストールする
- dresssu3
- NP_Trackbackを騙るトラックバックspamについて
- zippern7o
- NP_SpamBayesJP jp1b
- park81o
- Google Docs をメールフォームとして使う
- fogmpl
- なんで官庁の文章はPDFなんだろうか
- cutjw9
- 即席スライドショーを作る
- frightenlho
- 添付ファイルの容量を表示する「Attachment Sizes」
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(5019)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4161)
4 . 年次の人間ドックへ(4088)
5 . 2023 年分の確定申告完了!(1つめ)(3945)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]
