OME用各種スクリプト
OME_Select_PrefSet
2002.4.10 高階 知巳
t.takashina@computer.org
1. OME_Select_PrefSet とは?
OME_Select_PrefSet は OME の環境切り替えを行う AppleScript スクリプトです。署名 (Siganture.txt)、送信設定 (Sender_Info.txt)、受信設定(Receive_Info.txt) を同時に切り替えることが可能です。
PowerBook や iBook を使っていて、作業場所毎にメール環境を変えたい場合に有効です。例えば、会社では、会社のメールサーバに合わせた設定を使い署名にも会社名を入れるでしょうし、自宅では、ISP のメールサーバに合わせた設定を使い署名はプライベート用になるでしょう。
2. OME_Select_PrefSet のインストール
ダブルクリックで起動するアプリケーションとして使う場合には、適当なフォルダに OME_Select_PrefSet.applet を置き、また、ScriptMenu や ScriptRunnerから実行する場合であれば、ホームディレクトリの下の Library:Scripts フォルダに OME_Select_PrefSet.scpt を置いておきます。
OME_Select_PrefSet.applet と OME_Select_PrefSet.scpt の処理内容は全く同じで、保存の形式が、アプリケーションかコンパイル済みスクリプトかの違いです。
3. OME_Select_PrefSet の使い方
3.1 PrefSet フォルダの作成
OME の環境設定ファイルは Preferences:OME_Preferences の下にあります。この中に、切り替えたい環境の数だけ、環境名 + ".PrefSet" というフォルダ(例: 仕事用であれば Business.PrefSet) を作成し、そこにその環境で使いたいSignature.txt、Sender_Info.txt、Receive_Info.txt を置いておきます。
なお、PrefSet フォルダの名前には英語以外の文字は使えません。
3.2 OME_Select_PrefSet の実行
環境名を選択するダイアログが表示されますので、設定したい環境を選びます。選択した環境のフォルダから Signature.txt、Sender_Info.txt、Receive_Info.txtが OME_Preferences の下にコピーされ、それまで用いていた Signature.txt、Sender_Info.txt、Receive_Info.txt は PrefSet.Save にコピーされます。
注意: OME_Preferences の各設定ファイルを変更しても、自動的には *.PrefSetフォルダに反映されません。
4. その他
Signature.txt、Sender_Info.txt、Receive_Info.txt 以外のファイルも切り替えたい場合には、適宜、スクリプトを書き換えて下さい。簡単にできるはずです。
以上
Mac OS Xの既定のメールアプリケーション設定
OME_BundlingのSetInetPref2OMEは既定のメールアプリケーションを強制的にOMEにしてしまうスクリプトがはいっています。for_defaultとfor_xmlの二つのディレクトリがあり、どちらにも
AddOMEtoInternetPrefPane.pl
SetDefOMEtoInternetPrefPane.pl
の二つのファイルが入っています。通常はfor_defaultを使います。
AddOMEtoInternetPrefPane.pl
はOME_CoreをDefaultHelperApps.plistに加えるだけです。デフォルトのメールソフトはMailのままです。
SetDefOMEtoInternetPrefPane.pl
は加えた上にOME_Coreをデフォルトにしてしまいます。自分しか使わないMacであれば構いませんが、通常はAddの方を使って下さい(といいつつ私はOMEをデフォルトにしていますが)。ただし、OMEの新しいバージョンにアップデートしたときなどには、設定は「Mail」に戻ってしまいます。
OME_BundlingのSetInetPref2OMEにあるfor_Defaultフォルダをデスクトップにコピーしている場合、Terminalから
sudo /bin/tcsh
と入力してパスワードを入力した後、
cd /System/Library/PreferencePanes/Internet.prefPane/Contents/Resources/Japanese.lproj
~/Desktop/for_default/AddOMEtoInternetPrefPane.pl DefaultHelperApps.plist
または
cd /System/Library/PreferencePanes/Internet.prefPane/Contents/Resources/Japanese.lproj
~/Desktop/for_default/SetDefOMEtoInternetPrefPane.pl DefaultHelperApps.plist
とすると更新されます。元のファイルは.bakを付けてバックアップしています(スクリプトに-i.bakを書き込んであります)。
for_xmlディレクトリに入っている方は、何らかの理由でDefaultHelperApps.plistがxmlになっている場合に使用して下さい。xmlの設定ファイルにデフォルト用のスクリプトを使っても(あるいはその逆でも)ファイルの中身には影響ありませんが、よけいな.bakファイルが出来てしまいます。
で、デフォルトの状態とxmlになっている場合との判別方法ですが、
head -n 1 DefaultHelperApps.plist
が簡単です。出力結果が
<?xml version="1.0" encoding="UTF-8"?>
になっていればxmlになっています。
/*
であれば(たぶん)デフォルトのままです。
less DefaultHelperApps.plist
で確認してみて、最初の方に
> This file determines how the items in the Default E-mail Reader, Default Web Browser,
> and Default News Reader pop-up menus are pre-populated. This file is localizable because
> different countries may have different sets of applications that are popular.
と書いてあればまず間違いないです。
注意
- ・これらのスクリプトは無保証です。一応テストはしてありますが、何があってもぐるりはスクリプトの間違いを直す以外の責任を取りません。間違いがあれば指摘して下さい。直します。
- ・root権限で作業していない場合、更新されたファイルのownerが作業したユーザになっているようなので(つーかそれ以前にJapanese.lproj/に書き込めないっつー話もありますが)、必ずsudo
tcshしてから、あるいは使用可能にしてあるのであればrootになって作業して下さい。ownerがroot以外になっているときに、あなた以外のユーザでMacを使用したときに
何が起きてもぐるりは関知しません。
- スクリプトはUTF-8で書いています。デフォルトの名前は"オープンメール環境"になっています。miを使ってperlスクリプトを書くときにUTF-8で保存するとバックスラッシュのつもりで書いた\が全部(ascii character 194) & (ascii character 165)になってしまって、どうしようかと思いましたが、結局emacsで直しました(泣)。
- 怪しいと思ったらソースを見て下さい(笑)。
- 心配だったら自分でもバックアップ取って下さい(笑)。
以上です。
--
ぐるり<gururi@gururi.com>
ぐるりうぇぶ<http://gururi.com/>
Scripts_by_Gururiについて(2001-12-03)
ForCronniXフォルダの内容について
ForCronniXには、cronで定期的にDownloadMailsを走らせるときに使うAppleScriptとシェルスクリプトが入っています。
OME-AutoDownloadMails.sh(New!)(Recommend)
OME-AutoDownloadMailsのシェルスクリプト版です。やっている事は同じです。登録するときはOME-AutoDownloadMails.shのフルパスだけでOKです。出来ればAppleScript版ではなく、こちらを使って下さい。
OME-AutoDownloadMails(Not Recommend)
実行されたとき、OME設定フォルダ(~/Library/Preferences/OME設定/)に"NoDL"という名前のファイルが無ければ"/Aplications/OME_Applications/"にあるOME_DownloadMails.appを開きます。"NoDL"という名前のファイルがあると、何もせずに終了します。
CronniXでの登録方法ですが、
/usr/bin/osascript -so /Applications/OME_Bundling/OME_for_CronniX/OME-AutoDownloadMails >/dev/null
とすると、エラーを無視してくれる様です(でないと大量のエラーメールが........なんでだ?誰か解決策を教えてくれませんかねぇ)。
cronでosascriptを用いてAppleScriptを実行するとスクリプトが実行されない事がある様です。ぐるりとしては下のOME-AutoDownloadMails.shの使用を推奨します。
注意!
AppleScript版・shell Script版に共通する事ですが、cron(CronniX)で登録するとき、パスは適切なものに書き換えて下さい。例えば自分のホームにbinがあって、そこにスクリプトを入れたのであれば、
/usr/bin/osascript -so ~/bin/OME-AutoDownloadMails >/dev/null
または
~/bin/OME-AutoDownloadMails.sh
となります。パスに空白文字が含まれているときの指定はよくわかってません(なるべく無い方がいいと思いますが.......)。ぐるりが書いたスクリプトのファイル名には空白文字は入っていません。入ってたら教えて下さい。
ScriptMenuフォルダの内容について
OME-Info-AutoDownloadMails(New!)
OME-AutoDownloadMailsまたはOME-AutoDownloadMails.shを使わないのであれば必要ありません。
OME-ToggleAutoDownloadMailsと同様、OME設定フォルダ(~/Library/Preferences/OME設定/)の"NoDL"/"DL"ファイルの操作をします。OME-ToggleAutoDownloadMailsと違い、最初にダイアログを出して現在の設定を表示した上で、変更しない/OFFにする/ONにすると言う選択ができます。やっている処理はOME-ToggleAutoDownloadMailsとほとんど一緒です。
↑こんなダイアログが出ます。
OME-SendMail
なんでなかったんでしょう?(笑)OME_SendMail.appを起動します。一応ダイアログを出して送信してもいいか確認しますが、編集中のファイルを保存してくれたりはしません。
OME-ToggleAutoDownloadMails
OME-AutoDownloadMailsまたはOME-AutoDownloadMails.shを使わないのであれば必要ありません。OME設定フォルダ(~/Library/Preferences/OME設定/)に"NoDL"という名前のファイルがある場合、"DL"と言う名前に変更します。"DL"という名前のファイルがあれば"NoDL"に変更します。どちらも無ければ"NoDL"という名前のファイルを作成します。両方ある場合は"NoDL"をゴミ箱に移動して、"DL"には手をつけません。
OME-DownloadMails
OME_DownloadMails.appを開きます。
OME-NewMail
OME_MailWriter.appを開きます。
OME-Info-Sender
OME設定フォルダのSender_Info.txtを読み込んで、一つ(だけ)選ばせてくれます。選んだものが新しい送信者情報になります。その他の設定の順番は変わりません。SenderInfo.txtの中身は
名前
メールアドレス
SMTPサーバ
空の行
を一組として複数書いておく事ができます。
OME-Info-Receive
OME設定フォルダのReceive_Info.txtを読み込んで、受信したいメールサーバの設定を複数選ばせてくれます。選ばなかったものの行頭には#が付けられ、コメントアウトされます。Receive_Info.txtの中身は、
POPサーバ名,ユーザ名,パスワード
を1行1サーバ設定として複数書いておく事ができます。#で始まる行はコメントとなっています。もしコメントがあると、","が二つ入っていなければコメント行として扱い、最後の行にまとめられます。不幸にも","が二つ以上入っていると誤ってサーバ設定として扱われる可能性があります。
OME-FindUnreadMail
~/Library/Preferences/OME設定/OME_Unread_Mail.findを開きます。あらかじめSherlockで設定を作り、保存しておいて下さい。ぐるりは「名前が".ygm"で終わる/種類がフォルダで無い項目」で保存してあります。検索したいフォルダも同時に保存される様ですので、よく使うフォルダ、最低でもOS_Mail_Environmentフォルダは登録・保存しておいた方がいいと思います。名前を変更して、いくつか登録すると便利かもしれません。その際は開くファイルの名前がスクリプトのプロパティで設定してあるので、適宜変更してお使い下さい。
ScriptMenuって?という方へ
ScriptMenuは、AppleScript Script/Shell Script/Perl ScriptをMenu Barから実行出来る様にするものです。Mac OS X v10.1以降で利用できます。
http://www.apple.com/applescript/macosx/script_menu/
に紹介の頁があり、頁中程の"Download the Script Menu"という文字に張ってあるリンクからダウンロードできます。/Library/Scripts/と~/Library/Scripts/の中に入れたスクリプトが利用出来る様です。ぐるりは鬱陶しいので/Library/Scripts/の中身は全部一つのフォルダに入れてしまいました(笑)。
2001-12-03
ぐるり<gururi@gururi.com>
ぐるりうぇぶ<http://gururi.com/>
OMEがJavaOneで最優秀賞を取った記念
/Applications/OME_Applications/toolsフォルダにあるコマンドラインツール
by msyk(msyk@mac.com)
コマンドラインツール:kcpassword
by msyk(msyk@mac.com)
2001/12/17
kcpasswordコマンドは、デフォルトのキーチェーンからパスワードを取り出したり、あるいはデフォルトのキーチェーンにパスワードを設定することができる。コマンドの使い方は次の通りで、最初のパラメータはgetないしはsetのいずれかのキーワードを指定する必要がある。
キーチェーンからパスワードを取り出す:kcpassword get ServerName AccountName [Protocol]
キーチェーンにパスワードを設定する:kcpassword set ServerName AccountName Password [Protocol]
- ServerName:サーバ名
- AccountName: アカウント
- Password:パスワード
- Protocol:プロトコルを指定するがMac OSのOSタイプ形式の4バイトデータを指定する(省略すると任意のプロトコル)
結果コードが0なら取り出しや設定がうまく行われたことを示す。そうでなければエラー。
パスワードの取り出しでは、取り出し結果が標準出力に書き出されるが、改行は出力されないので、出力結果がそのままパスワードである。同一条件の項目が複数ある場合には、最初の項目のパスワードだけが取り出される。
パスワードの設定では、すでに指定するサーバ、アカウントのアイテムがあれば、それを削除して、新たなパスワードを設定する。
ポート、認証タイプについては、「任意」となっている。また、プロトコルを指定しないと「任意」となるようにしている。
コマンドラインツール:resolvalias filePath
- filePathに指定したファイルがエイリアスであれば、そのエイリアスを解決して、オリジナルのファイルのフルパスを、標準出力に書き出す。
- 指定したファイルがエイリアスでなければ、そのファイルのフルパスを戻す。
- 結果コードは、0ならエラーなし、それ以外だと、APIが戻したエラー値となっている。
コマンドラインツール:pppdiscon [-v]
- PPP接続を強制的に切る。
- -vは各種情報を標準出力に書き出す。
- 結果コードは0ならエラーなし。なにかあれば、おそらくは0以外の値になる。
コマンドラインツール:soundplay soundName
- soundNameで指定した名前のサウンドを鳴らします。
- soundNameは、~/Library/Sounds、/System/Library/Soundsに存在するAIFFファイルのファイル名です。大文字小文字はファイルとおりでなければなりません。
- たとえば、/System/Library/Sounds/Sosumi.aiffを再生するには、「soundplay Susumi」とコマンド入力します。
- 自分でファイルを作ってシステムフォルダに追加する場合には、ファイル名の拡張子は.aiffである必要があります。
コマンドラインツール:speaking text
- 現在のスピーチの設定に従って、textを読み上げます。
- 空白がある場合には、パラメータをシングルクォーテーションあるいはダブルクォーテーションで囲うことを忘れないでください。
更新日: