メモメモ3

メモメモ1  メモメモ2  メモメモ3



OutlookExpress から Mozilla Thunderbird への移行
Firefox+Thunderbird乗り換え&活用最強ガイド

Thunderbirdの便利で有益な機能については私が説明する必要は無いぐらいあちこちで出ていますので省略するとして、移行作業で困ったことがありました。
仕事柄、OutlookExpressのメールデータをCドライブではなくDドライブに保存する様にしているのです。万一のCドライブリカバリーを考えてのことです。これが実は大変なネックになっていました。

Thunderbirdには、OutlookExpressのメールデータをインポートする機能があるのですが、これはデフォルトの場所にあってできる機能です。Showzieの場合、メールの保存場所がDドライブなので、正しくインポートすることができません。 これには大変困ってしまいました。Thunderbirdを使いたいけど、データがインポートできなかったら何の意味もありません。新しくアカウントを作って新しくメールのやりとりをするほどの勇気はありません。
仕方ないので、なんとか自力でやっつける方法を見つけました。

Thunderbirdが格納しているメールデータの形式は一般的なUNIXのmbox形式です。ですので、OutlookExpressのdbx形式のデータをmbox形式に変換し、Thunderbirdの格納フォルダへコピーしてやれば万事休すです。
(ここでは結論だけしか書いてませんが、最初はThunderbirdのインポート機能でEudoraでなんとかできないかさんざんやってみたんですが、ダメでした。結果的にmboxそのものをThunderbirdが認識してくれることがわかったのですが、それがわかるのに約半日かかりました。)

まず、Thunderbirdの格納フォルダもDドライブにしたいので、profiles.iniを編集します。このファイルはC:\Documents and Settings\ユーザー名\Application Data\Thunderbirdフォルダ直下にあります。
テキストエディタでprofiles.iniを開き、Path= という行を探し、Dドライブの格納場所を指定します。
次にIsRelative=1 を IsRelative=0 に書き換えます。これで準備OKです。試しに一度Thunderbird を再起動して終了させておきましょう。
あとは、このDドライブのフォルダの中にmbox形式のファイルをドド〜っと入れてやります。
最初にdbxをmboxに変換します。OutlookExpress-To - OE5/6 Multi Converterというフリーソフトを使ってOutlookExpressの格納フォルダ内のdbxファイルを全部mbox形式に変換します。
次にデータを目的のフォルダへコピーしてやるのですが、Thunderbirdが認識できるmboxファイルには拡張子がありません。上記ソフトを使うと拡張子が自動で付きますので、それらを全て消してやります。その上で目的のフォルダへコピー。
あとはThunderbirdを普通に起動してやれば、全てのデータがThunderbirdへ移行できました。添付ファイルもバッチリです。ここで、もし正しく入らなかったり文字化けしてたりした場合は、mboxファイルの文字コードをいろいろと変更してみてください。Showzieの環境では JIS + CRLF で正しく認識しています。
必要に応じてThunderbird内でフォルダの構成を作成してメールを移動させたりして、無事移行作業が完了しました。

さらに、Showzieは外出用にノートPCを持っています。これにも同じ様に設定したいですよね。デスクトップ同様、同じバージョンのThunderbirdをインストール。データの格納場所をDドライブに変更してフォルダごとコピー。ノートPCに持って来て全部上書き。Thunderbirdを起動するとトラブルもなく正常にデータが入っていました。さらに驚いたことに、メールアカウントの設定情報まで入っています。アドレス帳も!おぉ〜!すばらしい!!Thunderbirdって、データをひとつのフォルダで全部管理してるんですね。なんて親切なんだろう。ますますMozillaが好きになってしまいました。


Thunderbird完全ガイド
Firefox乗り換え&拡張機能ガイド
Mozilla ファイヤーフォックス、サンダーバード乗り換え関連全般

OutlookExpress のメールアカウントのエクスポートとインポート
普段使っているデスクトップPCのOutlookExpressで、ユーザーを設定して使用しているのですが、突然そのユーザーでログインしようとしてもできなくなり、仕方なく一旦ユーザーを削除し、同じユーザー名で新しく作成しなおしました。
メールデータをコピーして正常に動作する様になりましたが、メールアカウントとメッセージルール作り直すのに非常に手間がかかるので、ノートPCからデータをインポートしました。
まずはメールアカウントのエクスポートとインポートです。

・ノートPCのOutlookExpressを起動し、メニューの「ツール」→「アカウント」を選択。
・目的のアカウントを選択し「エクスポート」でデータを保存。
・そのデータをデスクトップPCへコピー。
・デスクトップPCのOutlookExpressを起動し、「インポート」でファイルを選択。

テストしたところ、正しく送受信することができました。

OutlookExpress のメッセージルールのエクスポートとインポート
メッセージルールを操作するには、多少勇気が必要です。レジストリを操作する必要があるからです。ただ、難しいことはありません。これもノートPCからデスクトップPCへデータをコピーしました。

・ノートPCで「スタートメニュー」→「ファイル名を指定して実行」→「regedit」と入力してレジストリエディタを起動。
・HKEY_CURRENT_USER\ Identites\ <ID1>\ Software\ Microsoft\ Outlook Express\ 5.0\ Rules を開く。
・右クリックして「エクスポート」を選択しファイルに保存。デスクトップPCへコピー。

・デスクトップPCで「スタートメニュー」→「ファイル名を指定して実行」→「regedit」と入力してレジストリエディタを起動。
・HKEY_CURRENT_USER\ Identites\ <ID2> を開く。
<ID2> 部分(文字列)をコピーしておく。(あとで使います)
・ノートPCで保存したファイルをメモ帳などのテキストエディタで開く。
  注意)ここでダブルクリックしてはいけません。
<ID1> の部分を<ID2>に書き換えてファイルを保存。
・このファイルをダブルクリックしてメッセージルールをインポート。

大成功でした。

sendmailのメールキューの強制送信
ちょっとワケあって、キューに溜まったメールを、IDを指定して強制的に送信をかける必要があったので、メモしておきます。

・全送信 /usr/lib/sendmail -q
・全送信(詳細表示) /usr/lib/sendmail -v -q
・キューIDを指定して送信 /usr/lib/sendmail -qIキューID
・キューIDを指定して送信
 (詳細表示)
/usr/lib/sendmail -v -qIキューID
※キューIDを指定する場合、qとIとキューIDにスペースを入れない

OpenPNEの携帯から投稿の設定
OpnePNEは随分前にセットアップしたのですが、携帯から投稿する機能は停止させていました。あまり使わないだろうと・・・ところが最近になって、サイトの運営上、どうしても必要になり、セットアップすることになりました。
ウマく行ったので、次また設定する時のために記録しておきます。バーチャルドメインを使うという想定です。

1)メール受信できるユーザーアカウントを作成
 openpne@openpne.exsample.com

2)Postfixでバーチャルドメイン宛てのメールを受信できる様に設定
Webminの「仮想ドメイン」で以下を追加
 openpne.exsample.com   anything
 openpne@openpne.exsample.com openpne_openpne.exsample.com

3)DNSのMXレコードにサブドメインを追加(CNAMEではダメみたいです)
WebminのBINDの中の「メールサーバーレコード」というところがMXレコードにあたるので、ここにサブドメインを追加。
BINDをリスタート。

4)DNSが浸透するまで2〜3日待つ。

5)openpne@openpne.exsample.com宛てのメールが正しく届くことを確認した上で、@openpne.exsample.com宛てのメールを全てopenpne@openpne.exsample.comで受信するための設定を施す。
Webminの「仮想ドメイン」で以下を変更
 openpne@openpne.exsample.com openpne_openpne.exsample.com

 @openpne.exsample.com openpne_openpne.exsample.com
に変更。

6)openpne@openpne.exsample.comに届いたメールを転送機能を使ってPHPスクリプトに流し込む。
 |/usr/bin/php <OPENPNE_DIR>/bin/mail.php

これで正しく処理ができることを確認できました。
ちなみに、もうひとつ別のサブドメインを設定してやってみたのですが、どうもウマく行きません。BINDの設定の問題だろうと思いますが、DNS周りって結構難しいので、これ以上突っ込まない様にしておきます。

OutlookExpress の最適化をさせない方法
OutlookExpressをしばらく使っていると「メッセージを最適化しますか?」と聞いて来る様になります。起動(終了)100回以上になると毎回出る様になるんだそうです。最適化をすればカウンタがリセットされて、また出なくなりますので、最適化すればいいんですが、Showzieの場合、1GBを超えるフォルダがあって、それをやろうとすると途中でフリーズしたり、ファイルが使用中とか出てしまって、結局最適化することができません。自分で「しますか?」って聞いといて「できません」はないでしょ〜。
というワケで、「メッセージを最適化しますか?」を出さない様にする方法です。
簡単なのは、ここで配布している「Outlook Expressに勝手に最適化させないTool」で一撃です。
でも、Showzieの場合、いくらやってもダメでした。理由は、OutlookExpressにユーザー設定をしていて、ユーザーとしてログインして使っているからなんです。なので、直接レジストリを書き換えて、カウンタをゼロにしてやりました。
レジストリエディタを起動して
HKEY_CURRENT_USER\Identities\<ID>\Software\Microsoft\Outlook Express\5.0
を開いて、「Compact Check Count」というのがありますので、右クリックして値を0にしてやります。
すると終了する際に聞いて来なくなります。
あとは自分でしっかりとフォルダの管理をしましょう。

MySQLのテーブルのレコード総数の取得
あるサイトで、MySQLのテーブルのレコードの総数を取得することがあって、単純に
 SELECT * from `tableA`
 mysql_num_rows()
で件数を取得していたのですが、レコード数が多くなって来るとやたらと動きが鈍くなって来て、困り果てていたところ、解決法が見つかりひと安心。

 $result = "SELECT COUNT(*) as CNT FROM `tableA`";
 $count = mysql_fetch_assoc($result);

これで $count['CNT'] にレコードの総数が入って来ます。
ちなみにこうすると、テーブルの中身を見に行かなくて、テーブルを管理している情報を見に行くんだそうです。なるほど、それで激的に負荷がなくなるわけですね。どんなに巨大なテーブルでも一瞬なんだそうです。
勉強になりました。

CentOS5でCGIが動かない
手元にあるテスト環境用のサーバーマシンが壊れてしまって、新しくDELL PowerEdge T150を購入してCentOS5.1をインストール。Apacheの設定を編集してCGIが動作する様にしてテストしてみたのですが、ウマく動きません。エラーログを見ると以下の様なコメントが。

(2)No such file or directory: exec of '/var/www/html/test.cgi' failed

ファイルは確かに存在しているのにファイルが無い、という内容。googleであちこち調べて数時間かけてやっと解決。
原因はCentOS5.1にデフォルトで入っているvsftpdでした。vsftpdは初期設定ではASCIIで転送できない様になっています。このため、先頭行のperlへのパスの末尾に\rが残ってしまっていて『perlが見つからない』というエラーだった様です。
  #ascii_upload_enable=YES
  #ascii_download_enable=YES
コメントアウトを外してvsftpdを再起動、再度FTPで転送したら正しく動作しました。
そう言えば、CentOS4を入れた時もこの処理をした様な気がします。5になってあれこれいじくる部分が少なくなって便利になったな〜と感心していたんですが、やっぱり全部地道に設定しないといけないですね。

MySQLのUTF-8の日本語を取得する
Woedpressで格納してあるブログのタイトルをPHPスクリプトで直接MySQLに接続して取得しようとしたところ、ムチャクチャ文字化け。
SELECT文を発行する直前に以下を実行させる様にして無事解決。
  $sql_msg = "SET NAMES utf8";
  $result = mysql_query ($sql_msg, $connID);
なぜウマく行ったのかは不明・・・

Firefoxのパスワードマネージャーの不具合
普通、ログインしようとすると「パスワードを記憶しますか?」と聞いて来るのに、あるサイトでは聞いて来ない。『autocomplete="off"』が入ってるワケでもないし。
あれこれ調べてみたところ、プロファイルフォルダ内のsignons.txt,またはsignons2.txtとkey3.dbの整合性が取れなくなってしまっているみたい。
signons2.txtがあったので、それをテキストエディタで開いて、該当するドメイン関連のものを全部削除。再起動してアクセスすると聞いて来る様になりました。
これもなぜウマく行ったのかは不明・・・


月額10,290円の専用サーバー ・・・ root権限も付いてます


債務整理キャッシング