Category: 自作のScript


Mail.app用 同報メール作成AppleScript (2) ファイル添付バージョン

2011-8-11 — 8:49pm

以前に紹介した,Mail.app用 同報メール作成 AppleScriptのファイル添付バージョンです。

スクリプトのダウンロードはこちら→[mail_merger_attach.zip] 16KB

AppleScriptを実行する前にすること。
1)AppleScriptを開く。添付ファイルの場所を指定し,AppleScriptを保存し直す。
2)メールのテンプレートファイルを作る。(見本ファイルは,zipファイルの中)
3)宛先ファイルを作る(見本ファイルは,zipファイルの中)

– Mail 添付ファイル付の同送/同報メール作成用 AppleScript


– 【1】テンプレート テキストファイル (Mac形式:SJIS, 改行CR)

– 1行目:サブジェクト
– 2行目:%affiliation%  ← 所属
– 3行目:%name% 様    または, Dear %name%, (%name%に名前を差し込む)
– 4行目以降: 本文 自由

– 【2】 宛先用 テキストファイル  (Mac形式:SJIS, 改行CR)
– アドレスと氏名の間は”, ” [カンマ1個とスペース1個]
– 例)
– 1行目:aaa@aaa.com, 南野何子, 所属, 添付ファイル1
– 2行目:bbb@bbb.co.jp, 何乃何夫, 所属, 添付ファイル2


– 「添付ファイル名」は、1行に1個だけ記入できる。
– 例)
– aaa@aaa.com, 南野何子, 所属, file1.pdf
– bbb@bbb.co.jp, 何乃何夫, 所属, file2.doc など

– Written 2011.1.24, by TanakaA
– Modified 2011.8.11 by TanakaA

– 【3】重要 次の行、添付ファイルを入れたディレクトリのパスを書き換える –

property attPath : “Macintosh HD:Users:YOUR-ID:Documents:ATTACHMENT-DIR:” — 添付ファイルを入れたディレクトリ。

– 例 property attPath : “Macintosh HD:Users:YOUR-ID:Documents:ATTACHMENT-DIR:”
– パスは、ハードディスクから添付ファイルを入れたフォルダー名まで。最後に “:” 。

property TextDelim : “%” — フィールド名を挟むための文字列、デリミタ− (テンプレートファイルで使う)

on run
– テンプレートファイルを読み込む
set aFileName ¬
to (choose file with prompt “テンプレートファイルを選んでください”) as text
set fh to open for access file aFileName without write permission
try
set aTemplate to read fh as string
on error errmes
close access fh
error errmes
end try
close access fh

–テンプレートをサブジェクトと本文に分ける
set strSubject to paragraph 1 of aTemplate
set bodyTemplate to “”
repeat with pg in (paragraphs 2 thru end of aTemplate)
set bodyTemplate to bodyTemplate & pg & return
end repeat

–set theAttachment to choose file
–print theAttachment

– テンプレート本文をデリミタで分解してaListTempに書き出す
set aDelim to AppleScript’s text item delimiters
set AppleScript’s text item delimiters to TextDelim
set aListTemp to every text item of bodyTemplate
set AppleScript’s text item delimiters to aDelim

– aListTempの配列のサイズ aListTempCount
set aListTempCount to (length of aListTemp)

– 宛先ファイルを読み込む
tell application “Finder”
try
–set AppleScript’s text item delimiters to TextTab
set AppleScript’s text item delimiters to {“, “}
set Names to paragraphs of (read (choose file with prompt “宛先ファイルを選んでください”) as string)
repeat with nextLine in Names
if (the length of Names) is less than 1 then
display dialog “No items found in file.” with icon caution
return
end if
copy (the length of Names) to NamesCount –NamesCount:宛先総数
end repeat
end try
end tell

repeat with i from 1 to (NamesCount – 1)

– テンプレートに相手の所属と氏名を差し込む
set strMessage to “”
set strBodyMes to “”
set strBodyAtt to “”

repeat with j from 1 to aListTempCount

–set NamesItemCount to item i of Names

– %name% に氏名をセット
if item j of aListTemp = “name” then
if text item 2 of (item i of Names) is not “” then
set strMessage to strMessage & text item 2 of (item i of Names)
end if

– %affiliation% に所属をセット
else if item j of aListTemp = “affiliation” then
if text item 3 of (item i of Names) is not “” then
set strMessage to strMessage & text item 3 of (item i of Names)
end if
else
set strMessage to strMessage & item j of aListTemp
end if
end repeat

– 本文に改行を付ける
repeat with pg in (paragraphs 1 thru end of strMessage)
set strBodyMes to strBodyMes & pg & return
end repeat

–  strBodyAtt に添付ファイルのパス をセット
if text item 4 of (item i of Names) is not “” then
set strBodyAtt to attPath & text item 4 of (item i of Names)
end if

–メール作成
tell application “Mail”

set addrVar to text item 1 of (item i of Names) — 相手のメールアドレス
–set addrNameVar to text item 2 of (item i of Names) — 相手の氏名

– 新規メール Subject, ボディメッセージ 指定
set theMessage to make new outgoing message with properties {subject:strSubject, content:strBodyMes}

– Toアドレス, 添付ファイル
tell theMessage
make new to recipient with properties {address:addrVar}
make new attachment with properties {file name:strBodyAtt as alias}
end tell

–下書き保存
save theMessage
end tell

if i is equal to NamesCount then
break
end if
end repeat

– Mail アプリを前面に出す
tell application “Mail”
set visible of theMessage to true
activate
end tell
end run

Comment » | 自作のcgiやphp, 自作のScript

Mail.app用 同報メール作成AppleScript

2011-1-24 — 11:30pm

同じ内容のメールを沢山の人に出すような時,同じ文面でも,大切な方々には一人ひとりに1通ずつ出すことにしているが,コピーペーストが煩雑だ。かといってbccにアドレスを入れて一括送信してしまうと,読んで貰いにくくなってしまうのが悩ましい。

以前は,AppleScriptでEudoraとFilemakerを操作して,同報メールを作成していたのだが。Mac標準のMail.appに切り換えてからは,煩雑さに耐えつつコピー&ペーストでチマチマと同報メールを手作業で作ることが増えてきた。

最近,多めに同報メールを作成する必要が生じ,コピー&ペーストにほとほと嫌気がさして,久しぶりにアップルスクリプトを自作してみた。

昔の自作AppleScriptに,あれこれ継ぎ足したので体裁はすっきりしないけど,動作としては完璧である。

このスクリプトの動作:メール本文のテンプレートに,アドレス一覧からメールアドレスと宛名を差し込み,Mail.appの下書きメールをいちどに作成する。

スクリプトのダウンロードはこちら→[MailMerger AppleScript]16KB

– Mail 同送/同報/差込メール作成用 AppleScript


–1.テンプレート テキストファイル (Mac形式:SJIS, 改行CR)

– 1行目:サブジェクト
– 2行目:%start% (←本文開始を示す 必須)
– 3行目:空行 (必須)
– 4行目以降のどこか:%name% 様    または, Dear %name%, (%name%に名前を差し込む)
– 5行目以降: 自由

–2.宛先用テキストファイル  (Mac形式:SJIS, 改行CR) アドレスと氏名の間は”, ” [カンマ1個とスペース1個]
– 1行目:aaa@aaa.com, 南野何子
– 2行目:bbb@bbb.co.jp, 何乃何夫

– — written by 2011.1.24 A.Tanaka
– — http://living-in-clover.main.jp/ppp/

property TextDelim : “%” — フィールド名を挟むための文字列

on run
– テンプレートのテキストファイルを読み込む
set aFileName ¬
to (choose file with prompt “テンプレートファイルを選んでください”) as text
set fh to open for access file aFileName without write permission
try
set aTemplate to read fh as string
on error errmes
close access fh
error errmes
end try
close access fh

– テンプレートの中身を所定のデリミタで分解
set aDelim to AppleScript’s text item delimiters
set AppleScript’s text item delimiters to TextDelim
set aListTemp to every text item of aTemplate –文書テンプレートをaListTempに分解
set AppleScript’s text item delimiters to aDelim

– 宛先用テキストファイルを読み込む
tell application “Finder”
try
set AppleScript’s text item delimiters to {“, “}
–set AppleScript’s text item delimiters to TextTab
set Names to paragraphs of (read (choose file with prompt “宛先用ファイルを選んでください”) as string)
repeat with nextLine in Names
if (the length of Names) is less than 1 then
display dialog “No items found in file.” with icon caution
return
end if
copy (the length of Names) to NamesCount –NamesCount:宛先総数
end repeat
end try
end tell

repeat with i from 1 to (NamesCount – 1)

–本文を作る
– text item 2 of (item i of Names) — 相手の氏名

set strMessage to “”
set strBodyMes to “”
set item 4 of aListTemp to text item 2 of (item i of Names)

repeat with j from 3 to 5
set strMessage to strMessage & (item j of aListTemp)
end repeat

– テンプレートファイルの1行目はSubject, 2行目以降は本文
set strSubject to item 1 of aListTemp
repeat with pg in (paragraphs 1 thru end of strMessage)
set strBodyMes to strBodyMes & pg & return
end repeat

tell application “Mail”

– 新規メール下書き
set addrVar to text item 1 of (item i of Names) — 相手の氏名
set addrNameVar to text item 2 of (item i of Names) — 相手アドレス
set theMessage to make new outgoing message
tell theMessage
make new to recipient with properties {address:addrVar}
end tell
–set accountAddresses to (email addresses of first account) — from アドレス 環境設定の何番目か,を指定する場合
– set field “From” to “私の名前“– from アドレス 直接指定する場合
set subject of theMessage to strSubject — Subject はテンプレートファイル1行目
set content of theMessage to strBodyMes & return — 本文 相手の氏名 + テンプレート本文
save theMessage
end tell
if i is equal to NamesCount then
break
end if
end repeat

– Mail アプリを前面に出す
tell application “Mail”
set visible of theMessage to true
activate
end tell
end run

Comment » | MacOS X, 自作のScript

Safariのマウスオーバー辞書に「英辞郎」を組み込む (2010年12月バージョン)

2010-12-1 — 8:52pm

ご注意(2011.8.8現在, 2011.8.16追記)

Livedictionary は Safari 5.1ではうまく動作しないことが確認されているようです。(Livedictionaryサイト参照)
Livedictionaryの作者によると、アップルによるSafariのバグ修正がすみ次第、LiveDictionaryを調整する予定とのことです。

筆者の場合、LiveDictionaryの動作状況は次の通りです。
Safari 5.05ではLiveDictionaryは正常に動作します。従って、TimeMachineにバックアップが場合は、Safari 5.05を復元すれば 、以前のようにLiveDictionaryは使えます。

MacOS 10.6.8 + Safari 5.1 で、PDFファイルが正常に開けない現象、LiveDictionary が反応しない現象が出ました。
/Library/Internet Plug-Ins/QuickTime Plugin.plugin を外したところ、PDFファイルを正常に開けるようになり、PDFに対してはLiveDictionary が正常に動作しました。しかし、LiveDictionary はHTML等には反応しません

なお、Safari 5.05 + MacOS 10.6.8 では、LiveDictionaryは問題なく動作します
但し、筆者の場合、Safari 5.05でPDFが正常に開けなくなり、PDFに対してLiveDictionaryが反応しなくなりましたので、
/Library/Internet Plug-Ins/QuickTime Plugin.plugin 
を外したところ、PDFファイルを正常に開けるようになり、同時にLiveDictionaryも正常に動くようになりました。

(この記事の後半で,英辞郎の加工法を紹介します。12/6 微修正版)

まず,LiveDictionaryというマウスオーバー辞書ソフトがどんなことが出来るのか,下のイメージを見て下さい。

Safari-S
LiveDictionary は熟語や組織名も検索するので,用例の豊富な英辞郎を組み合わせるとかなり強力.

例:Safariで辞書引きしながらPDFを読む [LiveDictionaryの設定方法]

Textedit


例:テキストエディットでWord.docファイルを開き,辞書引きしながら原稿修正 [LiveDictionaryの設定方法]

反応が早いLiveDictionaryに,見出しの豊富な英辞郎を組み合わせると,手放せないツールになる。私の場合,2007年から仕事にもプライベートにも超愛用している。それまで面倒で辞書を引かずに済ませていた言葉や熟語も、マウスを滑らせるだけで意味が表示されるので,目からウロコ。100ページくらいの英文pdfも,スイスイと内容を把握できるようになった。

LiveDictionaryには適切な日本語辞書データがないため,英辞郎テキストを加工して読ませる必要があるが,Safariだけではなく他のソフトでもpdfや編集中のdocなどの辞書引きが可能になる。英語を日常的に読む必要のあるMacユーザーには,かなりおすすめである。多少の手間をかけてインストールする価値はものすごくあると思う。


それでは手順を書きます(12/6微修正)>>>。
わかりにくいようでしたら,コメントで質問下さい。ご遠慮なく。

Safariのマウスオーバー辞書に「英辞郎」を組み込む手順
最近のMacで順調に進めば,2.からの所要時間は約20分です。

1.準備するもの
1.0 LiveDictionary
LiveDictionary お試し10日間。25$のシェアウェア(2010.12現在  )
インストールを済ませる。

1.1 英辞郎テキストファイルの用意
こちらから,ダウンロード購入(2010年12月現在 1,980.)

(よく分からない物をいきなり購入するのが不安な場合は,1.1をスキップして1.2から3.までのスクリプトのテストを済ませてから判断して下さい。テストデータの範囲内の言葉を検索できます。
また,念を入れたい場合は英辞郎サイトの購入ページで提供されているサンプルデータ’SAMPLE-A.TXT’で試すこともできます。)

ダウンロードしたexeファイルを解凍し,その中の『EIJI-***.TXT』(***は数字)を使う。

解凍:StuffeIt Expanderでexeファイルの解凍ができる。
1)Free StuffeIt Expanderをダウンロード。
□ StuffIt Expander Only のみチェックを入れてダウンロードボタンをチェック。
2)StuffeIt Expanderをインストール
3)StuffeIt Expanderから英辞郎のexeファイルを開く。パスワードを聞かれたら,パスワードを入力する。

(注意:EIJI-***.TXTはサイズが相当に大きいので,安易にダブルクリックして開こうとすると,延々と待たされる。どうしても見たい時以外は,開かないのがお勧め。)

1.2 英辞郎Livdict書き出し用スクリプト
ダウンロード:Eijiro_to_LiveDict_script (127KB)

ダブルクリックして解凍すると,Eijiro_to_LiveDict_scriptフォルダーが出来る

Eijiro_to_LiveDict_scriptフォルダーの中身はファイル3個とフォルダー1個
 ・Perlスクリプト:  eiji-txt-to-txt.pl
 ・テスト用データ: EIJI-000.TXT(1000行)
 ・日本語処理モジュール: Jcode.pm*
 ・日本語処理ライブラリ: Jcode* フォルダー

[*Jcode.pmは,使用条件に基づき感謝とともに同梱Jcode - Japanese Charset Handler "This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself."]

2.スクリプトの準備

Eijiro_to_LiveDict_scriptフォルダーをデスクトップに移す
Eijiro_to_LiveDict_scriptフォルダーをデスクトップにドラッグしてドロップ。)

下のイメージは準備OKの状態(表示されるアイコンは環境によって違うので気にしない。英辞郎[このイメージの場合はEIJI-115.TXT]はこの段階では不要なので気にしない。)

3.スクリプトのテスト
Eijiro_to_LiveDict_scriptフォルダーが,デスクトップ上にあることを確認。

3.1 ターミナルを開く 
‘アプリケーション’フォルダー → ‘ユーティリティ’フォルダー → ‘ターミナル’

3.2 cdコマンドを入力する
(cd = change directly ディレクトリ移動)
ターミナルに半角小文字で下の青字をコピー&ペーストして,リターンキーを押す。

$ cd ~/Desktop/Eijiro_to_LiveDict_script(そしてreturnキー)
$       ←次の行にプロンプト($や%など)が表示されればOK。

3.3 パーミッションの確認 (飛ばして3.4に進んでOK)
1)パーミッションを調べる
ターミナルに ‘ls -al’ と入力して,以下のように表示されればOK。
緑の字の部分が合わない場合は,2)のパーミッション変更を行う。

$ cd ~/Desktop/Eijiro_to_LiveDict_script(リターンキー)
$ ls -al (リターンキー)

total 248104
drwxr-xr-x 7 YourID YourGroup 238 月 日 時:分 .
drwxr-xr-x 4 YourID YourGroup 136 月 日 時:分 ..
-rw-r–r– 1 YourID YourGroup 71890 月 日 時:分 EIJI-000.TXT
drwxr-xr-x@ 8 YourID admin 272 月 日 年 Jcode
-rw-r–r–@ 1 YourID admin 23108 月 日 年 Jcode.pm
-rwxr-xr-x@ 1 YourID YourGroup 3251 月 日 時:分 eiji-txt-to-txt.pl
$

2)パーミッションの変更
ターミナルにつぎのように入力する(青字部分をコピー&ペーストして,リターン)。

$ chmod 755 eiji-txt-to-txt.pl (リターンキー)
$ chmod -R 644 *.pm(リターンキー)
$ chmod 755 Jcode(リターンキー)
$ ls -al (リターンキー) ← 再度,パーミッションを確認する
$

3.4 スクリプトの実行テスト
テストデータ EIJI-000.TXTから,LiveDictionary用の辞書ファイルを書き出してみる。

ターミナルに ‘perl eiji-txt-to-txt.pl’と入力する。

$ perl eiji-txt-to-txt.pl(リターンキー)
EIJICONV write i = 1
EIJICONV write i = 2
EIJICONV write i = 12
EIJICONV write i = 13
(中略)
EIJICONV write i = 997
EIJICONV write i = 998
EIJICONV write i = 999
$

ファイルの行番号が,ターミナルに順次表示されて,999まで進めばOK。
(間の数字が飛ぶのは,同じスペルで品詞が別れている単語を1つにまとめる処理をしているため。)
できない場合は,3.3のパーミッションの確認を行う。

Eijiro_to_LiveDict_scriptフォルダーの中に,eiji_for_livedict.txtが出来ていることを確認。
eiji_for_livedict.txtを開いて,以下のようになっていればOK。

00-dictionary-header ← 1行目
A freedict.de-like dictionary.

[中略]
accelerate the pace of structural reform
構造改革を加速する      ← 2842行目

3.6 LiveDictionaryのテスト(飛ばしてOK)
興味があれば,出来上がったeiji_for_livedict.txtをLiveDictionaryに組み込んでテストしてみて下さい。
・組み込みの手順は「5.」を参照。
・組み込み後,サファリを再起動して,次の単語にマウスオーバーしてみて下さい。
→ academy acalculia “accelerate cell motility”
・テスト後,LiveDictionaryからeiji_for_livedict.txtを削除
 SafariのLiveDictionary ブックマークアイコン
 環境設定 → (右下)辞書の管理
 → Eijiro English Japanese Dictionary 選択してから,削除ボタン。

4.英辞郎ファイルのコンバート
1.1の英辞郎購入と解凍を済ませていること。)

4.1 準備
ファインダー上の作業
3.のテストで,Eijiro_to_LiveDict_scriptフォルダーにできた,eiji_for_livedict.txtをゴミ箱に捨てる。
Eijiro_to_LiveDict_scriptフォルダーに,購入したEIJI-***.TXT(***は数字)を入れる。

4.2 ファイル名の指定
eiji-txt-to-txt.plテキストエディット.appなどで開き,23行目を編集して保存する。

自分の英辞郎テキストファイルと同じ名前になるように,000の部分だけを書き換える。

$EIJI = “./EIJI-000.TXT”; # <-- 000 を書き換え

英辞郎サイトのサンプルデータ”SAMPLE-A.TXT”を使う時は

$EIJI = “./SAMPLE-A.TXT”; # <-- 000 を書き換え

4.3 書き出し実行
(この処理の所要時間は,最近のiMacで10分弱。)

ターミナルに ‘perl eiji-txt-to-txt.pl’と入力する。

$ cd ~/Desktop/Eijiro_to_LiveDict_script(リターンキー)
$ perl eiji-txt-to-txt.pl(リターンキー)
EIJICONV write i = 1   ←リターンキーを押して数分後から行番号表示が始まる
EIJICONV write i = 2
EIJICONV write i = 12
EIJICONV write i = 13
(中略)
EIJICONV write i = 2xxxxxx  最終行表示
$   ←次行のプロンプトは,最終行表示から数分で表示

リターンキーの数分後から,ターミナルの画面で’EIJICONV write i = ‘の表示が流れる。
(上にも書いたように,i の数字が飛ぶのは,同じスペルで品詞が別れている単語を1つにまとめる処理をしているため。)

しばし待つとEijiro_to_LiveDict_scriptフォルダーの中に,eiji_for_livedict.txtが表示される。

(注意:eiji_for_livedict.txtはサイズが相当に大きいので,安易にダブルクリックして開こうとすると,延々と待たされる。どうしても中身を見たい時以外は,開かないのがお勧めです。)

5. LiveDictionaryにeiji_for_livedict.txtを読み込ませる
5.1 Freedict/FOLFDOC Adapterのダウンロードが済んでいない場合
Safariで LiveDictionaryのメニューバーアイコン(本のマーク)クリック
  辞書のダウンロードボタンクリック
 → LiveDictionary 辞書リスト ペイン
    Freedict/FOLFDOC Adapterにチェックを入れてダウンロード
   LiveDictionary 辞書リスト ペインを閉じる

5.2 英辞郎の読み込み
Safariで LiveDictionaryのメニューバーアイコン(本のマーク)クリック
→ 環境設定 
 → 「LiveDictionary の設定」ペイン
   右下 「辞書の管理」ボタンクリック
 → 「LiveDictionaryについて」ペイン
   中段の右「アダプターや辞書のインストール」ボタンクリック
 → eiji_for_livedict.txtを選択して「開く

 → 「LiveDictionaryについて」ペインを閉じる

 → 「LiveDictionaryの設定」ペイン
   上段「使用する辞書を選択して下さい」 のリストから
   「Eijiro English Japanese Dictionary」を選択する。
   選択してから,インデックスが出来上がるまで数分待たされる。

 → 「LiveDictionaryの設定」ペインを閉じる

Safariで LiveDictionaryのメニューバーアイコン(本のマーク)クリック
→ 辞書
→ 「Eijiro English Japanese Dictionary」選択

5.3 関連して,ポップアップ条件の設定
 LiveDictionaryの使い勝手を良くするために,
 私は,環境設定でポップアップの条件を”Caps Lock”にしてます.
 こうすると,普段はポップアップなしですが,キャップスロックをかけた時だけ自動で辞書検索モードになります.のべつまくなしにポップアップが出る煩わしさを回避できます.

[ちなみにLiveDitionaryの関連記事は,以下の通りです。

LiveDictionaryとの遭遇

Safari + LiveDictionary で辞書引きしながらPDFを読む
 - Safariで辞書引き (pdf

LiveDictionaryを,その他のアプリケーションに組み込む
さらに マウスオーバー辞書: MacOS X の Mail.app や,Preview.app,JEdit に組み込む
 - Preview.app(プレビュー)で PDF を辞書引き
 - テキストエディット.appで Word.doc, txt ファイル
 - Mail.app
 - ecto, JEdit, etc.

なお,SafariにLiveDictionaryを組み込めば GoogleDoc 経由でWord Docファイル, Excel xlsファイルの辞書引きも可。

また,LiveDictionaryについてのインデックス的な記事は,こちらです.

これでOK。Enjoy easy reading!!


[経緯]

2007年2月に,Safari用のマウスオーバー辞書「LiveDictionary」に「英辞郎」を組み合わせる方法をご紹介した[こちら].
実は私のサイトで最大アクセス数をいただいているのがこのエントリーであり,役に立ったというコメントを時々頂いて嬉しい気持ちであった.

しかし,最近,最近hobbyさんとおっしゃる方から,私が2007年に書いた手順では処理が進まないようだ,とメールを頂いた。
MacOS10.6.5 & PDIC Viewer version 1.0.2.3 の私の環境で試してみると,やはり書き出せない。
それでは困るので,新たにPDIC viewer不要の英辞郎書き出しスクリプトを書いてみた。

PDIC viewer 経由の英辞郎のテキスト処理ができなくなって困っている方は,試してみて頂けたらと思う。手順も(前に比べたら)ややこしくないので。

20 comments » | Livedictionary, MacOS X, 自作のScript

Mail.app の新着メールを自動的に開くAutomator (Snow Leopard)

2010-1-7 — 11:14pm

MacOSXのMail.app は検索も軽いし,iCalやアドレスとの連携も容易だし,長所だらけのメイラーではあるが,言わせて貰えばサイテーな部分も結構ある。
まず,新着メールを届いた順に開く,というシンプルな機能がない。Eudoraに長年慣れてきた私には,これはかなり不便だ。(フィルターでいろんなメールボックスに振り分けられた新着メールを,いちいち探して手で開けと言うのですか? という状態)
MacOS X 10.5の Leopardなら, GrowlMailで,Mail.appに到着したメッセージを全て開くことができた。しかし,10.6のSnow Leopardでは,GrowlMailはまだ動かない。
プライベートのメールは少ないからいいけど,仕事の新着メールだけでも手を動かさずに全てチェックするにはどうすればいいのか? 困ってしまう。
窮余のあげく,知っているモノを組み合わせたら,どうにか,5分ごとに到着したメールを全て開くAutomatorアプリができたので,そのAutomatorアプリと作り方メモを備忘録として書いておく。



【アプリケーション】
ダウンロードmail-5min.app.zip
機能: 5分ごとにMail.appの全ての未読メールを探して,メッセージのウィンドウを開く。但し,ゴミ箱と迷惑メールは対象外。
使い方:Mail.appが起動している時に,ダブルクリックする。
注意:このスクリプトは,全てのメールボックスの未読メールを開いてしまう。何百・何千も未読メールがある場合は,このスクリプトの起動前に,Mail.appのメールボックスの未読メールを手作業で一括して既読にしたほうがいい。
ーーーー
スクリプトの作り方
[用意するもの]
1.“Open Mailbox” というAppleScript
“Open Mailbox”のスクリプトを,AppleScript エディタで開き,スクリプトの全文をコピーする。
[スクリプト作りの作業]
2.Automator.app を起動する。
ワークフロー作製画面
2−1.左のライブラリの中の「AppleScriptを実行」を選択して,右のワークフローの編集画面にドラッグ&ドロップする。
2−2.「AppleScriptを実行」の例文スクリプトを全て消す
2−3.上の1)でコピーしたスクリプトを,「AppleScriptを実行」のスクリプトウィンドウにペーストする。
2−4.44, 45行目の行頭に — を加えて,コメントアウトする。(ダイアログを表示させない)

↓コメントアウト

2−5.Automatorスクリプトとして,適当な名前で保存する。
3.Automator リピート実行用のユーティリティを入手する
Automator Loop Utility
4.2で保存したAutomatorスクリプトの,リピート実行アプリケーションを作る。
4−1.ダウンロードしたAutomator Loop Utility.appの入っているフォルダーを開く。
4−2.Automator Loop Utility.appのアイコンの上に,2.で保存したAutomatorスクリプトをドラッグ&ドロップする。
4−3.リピート間隔を聞いてくるので,秒で指定する。 300(5分)など。
4−4.リピート実行アプリケーションの名前を指定して,保存する。
  (保存したら,ファイルの更新日時が4年ほど前の2005年になるのには驚いたが,問題なく動くので,まあいいかと。気になる場合は,ターミナルでtouchコマンドをかける。)
5.アプリケーションの実行前の準備。
 作ったアプリは,メールボックスに未読のメールが1000通あれば1000通全部開いてしまう。
アプリを走らせる前に,Mail.appで,未読のメールを全て既読にしておく。(メールボックスを右クリックして,既読にする)
6.アプリケーション起動。
 あとは,手間なしで,届いたメッセージが全部開かれる。


mail.appでもう一つイヤなのが,
メッセージの返信ボタンを押すと,元のメッセージウィンドウが自動的に閉じられて,返信編集ウィンドウに変わってしまうことだ。
編集を中断して,イチから返信を書き直そうとすると,大変だ。元のメールがどのメールボックスに入っていたのか分からなくなる。検索をかけるか,メールボックスをあれかこれかと開く他はなく,うっとおしいことこの上ない。

3 comments » | MacOS X, 自作のScript

Safari:テキストとURLを一度にコピーするアップルスクリプト

2009-1-31 — 12:35pm

タイトルのとおりで,Safariの最前面の画面から,テキストとURLを一度にコピーする自作アップルスクリプトです.
多くのページを引用・整理したり,webページのリンクと抜粋をメールする際の作業の手間を省けます.
Safari で表示したページで選択したテキストとURL,ページタイトルを一度にコピーして,クリップボードに保存するスクリプトが2点.
そして, 
Safariで選択したテキストとURL,ページタイトルを使って,Mail.appの新規メールを作成し,下書きボックスに保存するスクリプトが1点です.
[スクリプトのダウンロードのリンクは最下部にあります.]
実行例
たとえば,Safariで↓の例のページを表示し,オレンジ色のエリアのテキストを選択した場合. 
pict5.png


Safariの最前面のページで上のイメージのようにテキストを選択した後に,それぞれのApplescriptを実行した後のクリップボードの内容が下の2つのイメージです.
(クリップボードに表示しなくても,エディターに直接ペーストできます.)
1.safari-text-copy-TEXT
(クリップボードの内容:ページタイトル,URLアドレス,選択テキスト)

pict1.png
2.safari-text-copy-HTML
(クリップボードの内容:リンクタグ,選択テキスト)

pict2.png
3.safari-text-to-mail 
Mail.appに新規メールの下書きを作成し,保存する.
(新規メールの下書き:タイトル,選択テキスト,URLアドレス)

このスクリプトを使うと,iCalへのスケジュール転記の省力化も可能です.(Mail.appの裏技参照)
mail.png
一括ダウンロード
ダウンロード: safari-text-copy.zip 68KB  (3種のアップルスクリプトのソース.srcとアプリケーション.app )
注意:
・Safariでテキストを選択されていない状態で実行すると,3個のスクリプトともタイトルとURLをコピーします.
・Safariで表示したpdfのテキストを選択した場合は,スクリプトは何もコピーできず,エラーメッセージを返します.
・Applescriptをメニューバーから実行することも可能です.
  (アプリケーション→AppleScript→AppleScript ユーティリティ.appで設定)
・サードパーティのユーティリティと組み合わせると,アップルスクリプトをコンテクストメニューから実行(FruitMenuなど)たり,ショートカットキーで実行(MenuMasterなど)することも出来ます.

Comment » | 自作のScript

Back to top