秀丸メール起動時のコマンドライン(Ver7.22対応版)
メールアドレスまたはmailto:プロトコルの指定
 秀丸メール起動時のコマンドラインには、mailto:プロトコルの中身またはメールアドレスを指定できます。
 メールアドレスを指定すると、秀丸メール本体ウィンドウは現れずに、メール作成用のメールエディタ・ウィンドウだけが表示されて、「To:」部分に指定されたメールアドレスが入ります。


マクロ実行の指定(/x マクロ名)
 秀丸メール起動時のコマンドラインに、「/xマクロ名」と指定すると、指定されたマクロを秀丸メール起動時に実行します。
 この場合、「マクロ・マクロ登録」の「秀丸メール起動時」に指定したマクロは実行されません。



メール用ディレクトリの指定
 「/d ディレクトリ名」のオプションを指定すると、秀丸メールのメール用ディレクトリが指定できます。このオプションは/xオプションと同時に指定できますが、その場合は/dオプションを先に指定してください。 メール作成用のコマンドラインおよびmailto:プロトコルの中身等とは同時に指定できません。

 ディレクトリ名に空白が含まれている場合は、「/d "c:\Program Files\TuruKame"」のように、ディレクトリ名をダブルクォーテーションで囲んでください。ディレクトリ名の最後の「\」マークは付けても付けなくてもどちらでもかまいません。

 /dオプションと、後述する/mオプションの両方を指定する場合は、/mのオプションの方を先に指定する必要があります。


メール作成
 秀丸メールに新規メールを作成したり、そのメールを今すぐ送信したりできます。この場合のコマンドラインの形式は、

 コマンド名 パラメータ1=値1 パラメータ2=値2 パラメータ3=値3 ...

 のような形式になります。パラメータ名およびコマンド名部分は大文字/小文字の区別がありません。

 コマンド名には、以下の4種類が指定できます。

newmail 新しいメールを作成して、そのままメールエディタを待機させる。
unsentmail 新しいメールを作成して未送信フォルダに保存する。
draftmail 新しいメールを作成して草稿フォルダに保存する。
sendnow 新しいメールを作成して今すぐ送信する。
sendnowquiet sendnowと同じだけど、メールエディタを非アクティブ状態で起動する。送信時の宛先確認も省略される。
sendnowmini sendnowと同じだけど、メールエディタを最小化した状態で起動する。送信時の宛先確認も省略される。
sendnowmini2 sendnowminiと同じだけど、「あとで送信/今すぐ送信時」に登録された自動起動用のマクロを起動しないで送信する。送信時の宛先確認も省略される。

 パラメータには以下の種類があります。

Account  メール用のアカウントを指定します。このパラメータとFolder=の両方を省略した場合は「全般的な設定・基本」の「標準のアカウント」で指定されたアカウントが指定されます。
 Accountパラメータは、他のパラメータよりも先に(先頭に)指定する必要があります。
Folder  フォルダを選択して「新規メール」とした時と同じような形でメールを作成するよう指示します。このFolder=の指定をする場合は、Account=でアカウントを指定しないでください。
 Folder=で指定するフォルダは、アカウントそのものである場合はアカウント名そのまま、フォルダを指定する場合は、例えば「アカウント名\受信\サブフォルダ」のように「\」記号で区切って指定してください。
 アカウント直下にユーザーが作成したフォルダを指定する場合は、「アカウント名\User\XXXX」のように、「\User」というフォルダ名を入れてください。アカウント直下のフォルダは内部的にそのような作りになっているので、 それに合わせていただく必要があります。(マクロからフォルダを指定する場合も同じく)
 Folder=は他のパラメータよりも先に指定する必要があります。
 To=の指定で情報アイテム用の指定(例:To=@.item)をする場合、Folder=の指定によって、その情報アイテムの保存先を指定することが出来ます。ただし、 情報アイテムの保存先としては必ず受信フォルダ配下またはアカウント直下のユーザー様フォルダ(アカウント名\User\XXXX)を指定してください。
Body  メール本文を指定します。コマンドライン上なので、「Body=」で指定できるメール本文は1行分だけです。複数行の本文を指定する場合は「BodyFile=」を使います。

本文を指定する系のパラメータ複数指定時の動作について
 Template=、Body=、BodyFile=、Folder=のどれかの指定は、基本的にはメール本文の置き換えとなります。なので、例えばTemplate=で何かテンプレートを指定しつつ、その後のパラメータでBody=の指定をすると、先に指定したテンプレートの指定は無視されます。
 BodyFile=の場合はちょっと例外で、これだけは既存のメール本文の指定に対して「追加」の形でメール本文を指定する形になります。
 Folder=の指定も、実はこの指定によって、そのフォルダの新規メール用のテンプレートが指定されたことになって、メール本文が置き換わります。
 この辺ちょっと仕様がややこしくなってるので、もしこれらのパラメータを複数指定する場合に結果がどうなるのかは、実際にテストして確認してみてください。
BodyFile  メール本文を読み込むファイル(ファイル名)を指定します。ここで指定されたファイルがメール本文に追加される形になります。BodyFile=を複数指定すると、指定されたファイル内容すべてが連結された形の本文となります。
 「BodyFile=clipboard」と指定すると、クリップボードの内容を本文と扱います。

メール本文の置き換え指定
 Template=、Body=、Folder=の指定をすると、それによって何らかのメール本文が指定されたことになります。その後にBodyFile=を指定すると、既存のメール本文に対してBodyFile=の内容が追加されるようになります。追加ではなくて置き換えとしたい場合には、
body="" bodyfile="c:\\temp\\temp.txt"
 のように、「body=""」を指定してからbodyfileを指定してください。
File  メールのヘッダと本文を含む完全な形のファイルを指定します。ここで指定されたファイルはメールのヘッダと本文を標準的な形式で含んでいなければいけません。ここで指定したファイル中にFrom:ヘッダが含まれていない場合は、アカウント用の「From:」が自動的に挿入されます。アカウント用の指定によってはReply-To:ヘッダも自動挿入されます。
 「File=clipboard」と指定すると、クリップボードの内容をメール内容と扱います。

ここで言う「標準的な形式」とは、つまり、ヘッダは「Subject: XXXX」のように指定して、メール本文は、ヘッダの後に空行を1行入れて、その後指定する形になります。
Attach  挿入したい添付ファイル(ファイル名)を指定します。「File=」や他のヘッダ指定といっしょに使っても正しく動作します。「Attach=」を指定した後に「File=」を指定しても大丈夫です。
 添付ファイルを複数指定したい場合はAttach=またはFile=を添付ファイルの数だけ複数指定します。ファイル名をセミコロンで区切って複数指定することは出来ません。
例(2つ指定する例):
attach="e:\test\test1.txt" attach="e:\test\test2.txt"

追加機能: 
「attach=」で指定したファイル名を別の名前で添付したい場合は、ファイル名の後ろに「*」を付けて、その後ろに新しいファイル名を指定してください。
例: attach="c:\temp_path\temp.txt*newname.txt"
任意のヘッダ  任意のヘッダ名を指定すると、そのヘッダの値を設定することができます。例えば「Subject=テスト」とすると、「Subject:」ヘッダに「テスト」を入れることができます。宛先を指定するなら「To=abc@xyz.com」のように指定してください。
 同じヘッダ名を複数指定すると、前に指定した値に対して置き換えるという意味になります。例えば「To=a To=b」と指定すると、前に指定した方の「a」は無視されます。また、「File=」でヘッダ部分が設定された後に「Subject=」等を指定した場合も、 「File=」で指定されたヘッダを置き換える動作となります。

Version 7.10β10からの新仕様:
 任意のヘッダの内容の中には、以前はダブルクォーテーションマークを指定することが出来ませんでした。例えば「subject="aaa"」と指定すると、「aaa」を指定した扱いになりました。
 秀丸メールのVersion 7.10βから、ダブルクォーテーションの記号はVisualBasic風に「""」と記述することで記述可能になりました。例えば「to="""テスト"" <test@test.test>"」のように指定すると、「"テスト" <test@test.test>」のような文字列をTo:ヘッダに指定することが出来ます。
 ダブルクォーテーションの記号を含めたパラメータを指定する場合は、さらに、パラメータ全体もダブルクォーテーションで囲む必要があります。
 タブ文字やその他の制御文字をヘッダに含めることは相変わらず出来ません。
マクロの例:
run "c:\\program files\\hidemarumail\\turukame.exe newmail to=\"\"\"テスト\"\" <test@test>\"";

Orikaeshi  メールの折り返しのON/OFFを指定します。「Orikaeshi=1」で折り返しON、「Orikaeshi=0」で折り返しOFFとなります。何も指定しないとON扱いとなります。
Template  「Template=1」を入れると、標準のテンプレートを使ってメールを作成します。「Template="AAA"」のようにパラメータをダブルクォーテーションで指定すると、指定されたテンプレート(新規メール用の物に限る)を使ってメールを作成します。
 テンプレート名を指定する時は、必ずダブルクォーテーション記号で囲ってください。
 指定されたテンプレートに署名が関連づけされている時は、署名もいっしょに付加されます。
TemplBodyFile  BodyFileと同様にメール本文を読み込むファイル(ファイル名)を指定しますが、TemplBodyFile=の場合には、読み込んだ内容をテンプレートの内容として扱います。したがって、$(CurrentDate,"YYYY/MM/DD")等のテンプレート命令が使えます。
 「TemplBodyFile=clipboard」と指定すると、クリップボードの内容をテンプレート内容と扱います。
Sign  「Sign=1」があると、本文に署名を追加します。「Sign="AAA"」のようにパラメータ指定すると、指定された署名が付加されます。
 「Sign=」の指定が無くても、「Template=」で指定したテンプレートに署名が関連づけされていれば、自動的に署名が付加されます。
Macro  newmailでメールエディタを起動する時に限って、「Macro=」を使って、マクロの自動実行を指定できます。Macro=のパラメータにはマクロのファイル名を指定してください。
 newmailの時以外にMacro=を指定しても無視されます。
 newmailでメールエディタ起動した時は、「マクロ・マクロ登録・自動起動」の「送信用のメールエディタ起動時」に指定したマクロは実行されません。(Macro=の指定の有無に関係なく)
UnsentIfError  sendnowまたはsendnowquietを指定した時で、メールを送信してエラーになった場合(送信出来なかった場合)に、そのメールを破棄するか、または未送信フォルダに保存するかを指定します。
 UnsentIfError=1と指定すると、エラーの時は未送信フォルダに保存するようになります。
 何も指定しない場合はメールが破棄される動作となります。
 このパラメータはV4.80から追加されてます。

 newmailの場合はメールエディタが起動してそのまま秀丸メールの動作が続行されます。それ以外では、処理が終わり次第、秀丸メールのプロセスは終了します。既に秀丸メールが起動されている状態でさらに秀丸メールを起動した場合には、 newmailの場合であっても後で起動した方の秀丸メールプロセスは終了します。
 メールの作成/送信などでエラーが発生すると、その場でエラーメッセージが表示され、処理が中断されます。
 エラーが起きた場合には、秀丸メール側でエラーが起きたことをレジストリに記録します。呼び出し元のプロセスでエラー状況を確認したい場合には、そのレジストリの値を参照してください。

レジストリの場所は、
HKEY_CURRENT_USER\Software\Hidemaruo\TuruKame\Config\LastError
 です。秀丸メールを起動する前にここのレジストリ値(REG_SZ値)を""に設定し、秀丸メールの処理が終わってからここの値を参照し、値が""ならエラー無し、""以外ならエラーが発生したことを表しています。

 sendnowで送信しようとしてキャンセルされた場合またはエラーになった場合もここに適当な文字列が設定されます(V1.72から)。
例:
turukame.exe newmail To="maruo@mitene.or.jp" Subject="テスト" Body="メール本文"
turukame.exe newmail Folder="斉藤秀夫メイン\受信\Impress" To="maruo@mitene.or.jp"


アドレス帳の表示
 コマンドラインに「adrbook」を指定すると、アドレス帳を表示します。
例:
turukame.exe adrbook


.emlファイルの表示
 Outlook Expressの.eml形式ファイルなど、RFC822形式で保存されたファイルを秀丸メールでデコードして表示するには、/vオプションを使います。/vオプションの後ろにファイル名を1つだけ指定してください。
例:
turukame.exe /v c:\temp.eml
 .emlとの関連づけに、例えば「c:\turukame\turukame.exe /v "%1"」のように指定すれば、.emlファイルをダブルクリックした時にOutlook Expressではなくて秀丸メールを起動することができます。 しかし、こうしてしまうと秀丸メール側の「ログを関連づけアプリで開く」が機能しなくなります。ご注意ください。


メールファイルの選択/表示(秀丸メール用のメールファイル指定)
 秀丸メール用に保存されているメール(のファイル名とファイル中の位置)を指定して、そのメールを秀丸メール本体で選択した状態にしたり、メールエディタで開いたりすることができます。
メールを選択するだけの場合は、/vf ファイル名 オフセット
メールを選択して開く場合は、 /vF ファイル名 オフセット
 と指定します。
 ファイル名とオフセットの間には空白が1つ以上必要です。ファイル名に空白を含む場合は""で囲んで指定する必要があります。オフセットは、メールがファイルの中のどの位置にあるかを10進数で指定します。
例:
turukame.exe /vf "c:\TuruKameData\テストアカウント\受信\受信200211.txt" 12345
 さらに、オフセットよりも後ろに空白区切りでメッセージIDを指定することも出来ます。メッセージIDを指定すると、ファイル名+オフセットで指定されたメールのメッセージIDがたしかにコマンドラインで指定されたメッセージIDと同じかどうか比較して、 もし違っていたらエラー扱いとなります。

 さらには、/vfオプションの前に/zというオプションを指定すると、このエラー扱いとなった場合のエラーメッセージを抑止することも出来ます。

 このオプションはVillageCenter社のサーチクロスという検索ソフトと連携するために用意した物です。



「検索して一覧作成」の実行
 コマンドライン指定で「検索して一覧作成」を実行することができます。指定の仕方は、

turukame.exe grep account=XXX folder=XXXX FindPack文字列…
 です。「account=XXXX」は検索対象アカウントの指定、「folder=XXXX」は検索対象フォルダの指定、その後ろの「FindPack文字列」は、tkinfo.dllのSetFindPack関数用のパラメータそのままです。

 「account=」または「folder=」のパラメータ部分に空白を含む場合は、全体を""で囲んで指定してください。

 「account=XXXX」を省略したり、「account=""」と指定したりすると、すべてのアカウントを対象とします。

 「folder=XXXX」を省略したり、「folder=""」と指定したりすると、すべてのフォルダを対象とします。または、「folder="受信+送信済み"」と指定すると、受信フォルダと送信済みフォルダとアカウント直下にユーザーが作成したフォルダ配下を対象とします。「account=」と「folder=」の指定方法についてはtkinfo.dllのDoGrep関数と同じなので、詳しくはそちらを参照ください。
 「FindPack文字列」の指定については、tkinfo.dllのSetFindPack関数の説明を参照ください。
例:
turukame.exe grep account="" folder="受信+送信済み" ("abc", target=subject), subfolder=1
turukame.exe grep ("aaaa.bbb@xxxx.yyy", target=person), subfolder=1, messageidtarget=messageid


秀丸メールを複数同時起動する用の指定(/m数字)
 秀丸メールの本体ウィンドウを、複数同時に起動する用のオプションがあります。(V5.50β20から)
 秀丸メールを本体ウィンドウを複数起動するには、「/m」オプション+数値1桁と、あと、/dオプションでメールデータ用のフォルダを指定する形のコマンドラインを、複数起動したい分だけ実行すればいいです。
 例えば「c:\turukamedata1」というメールデータを対象とした秀丸メールと「c:\turukamedata2」というメールデータを対象とした秀丸メールを起動したい場合は、
turukame.exe /m0 /d "c:\turukamedata1"
turukame.exe /m1 /d "c:\turukamedata2"
 のように指定します。/mの後ろの数値は0〜9まで指定出来ます。メールデータ毎に固有の番号を指定すればいいですが、一番標準としたいメールデータの方については「/m0」を指定することをお勧めします。
 /mオプションは、他のオプションよりも一番前に指定する必要があります。
 同じメールデータを対象とした秀丸メールを「/m」オプションで無理矢理複数起動することは、あるオプションをいじることで可能にはなりますが、危険なので(メールデータ用のファイルを破壊する恐れがあるので)やめてください。
 あと、このオプションを指定して秀丸メールを複数起動することについてはあまり込み入ったテストはしてないので、もしも何か問題が出たら、すみません。
 それと…。外部のアプリケーションソフトからメールを新規作成するような操作、たとえはInternet Explorerから「mailto:」のリンクをクリックしたりした場合には、どちらの秀丸メールが対象としてメールが作成されるか不定となります。これもご注意ください。
 「/m」オプションで数値の0以外を指定した場合、その秀丸メール上では、秀丸メールのプロクラム用フォルダにある「hidemac3.dll」を、メールデータ用フォルダに別名でコピーして、それをロードして使う形になります。メールデータ用のフォルダにそういうDLLが残ってしまうことがありますが、それは正常動作です。


起動時の送受信を抑止するオプション(/b)
 「全般的な設定・送受信」の「秀丸メール起動時にすべて送受信を実行する」をONにしている場合でも、起動時の送受信を抑止したい場合があります。例えば「/xマクロ名」を指定してマクロ実行させる場合で起動時の送受信はやらせたくない場合があります。
 この場合は、「/b」というオプションを指定すればいいです。/bのオプションはマクロを実行する用の「/x」よりも前でないとダメです。
例:
turukame.exe /b /x test.mac

 「/b」を指定すると、定期受信での「秀丸メール起動時にも定期受信を実行する」も効かなくなります。


ウィンドウの位置/サイズ指定
 秀丸メール本体ウィンドウの位置とサイズを指定します。位置のx座標、位置のy座標、横幅、縦の高さをピクセル単位で、以下のように指定します。
turukame.exe /(x座標,y座標,横幅,高さ)

 例えばx座標に100、y座標に200、横幅に1000、高さに800を指定する場合だと、
turukame.exe /(100,200,1000,800)
 のようになります。ここで指定する数値は画面のピクセル単位の数値ですが、例えばノートパソコンの場合で、パソコン内蔵ディスプレイがフルHD(1920x1080ピクセル)だけども外部接続ディスプレイが4Kディスプレイ(3840x2160)だと、ピクセル単位で見た時のサイズが4倍異なってしまいます。そうならないようにする用に、画面のDPI値のスケーリングを考慮した単位というか、DPI値=100%を前提とした単位で指定する方法もあります。"/("の直後に"dpi"を付けます。
 例えば
turukame.exe /(dpi100,200,1000,800)
 のように指定すると、画面DPI値が100%の場合はそのままピクセル単位と同じ位置/サイズでウィンドウが出てきますが、画面DPI値=200%のディスプレイだと、x座標=200、y座標=400、横幅=2000、高さ=1600のピクセルサイズになります。

 ウィンドウの位置については負の数も指定できます。サイズについては必ず正の数を指定する必要があります。
 「dpi」指定する場合の倍率は、メインディスプレイのDPI値を採用します。ウィンドウ位置がサブディスプレイ上であっても倍率計算はあくまでメインディスプレイのDPI値で計算します。

 秀丸メールのメインウィンドウの位置/サイズの後ろに、さらに、
  • エディタ・ウィンドウの位置/サイズ
  • アドレス帳・ウィンドウの位置/サイズ
  • 検索結果ウィンドウの位置/サイズ
 が指定できます。それぞれ「x座標,y座標.幅,高さ」の4つの数値を、上記の順序で記述する形になります。例えばメインウィンドウとエディタ・ウィンドウの位置/サイズを指定したい場合は、
turukame.exe /(X座標,Y座標,幅,高さ,エディタX座標,エディタY座標,エディタ幅,エディタ高さ)
turukame.exe /(dpiX座標,Y座標,幅,高さ,エディタX座標,エディタY座標,エディタ幅,エディタ高さ)
 のように指定します。アドレス帳・ウィンドウも指定する場合はさらに追加で
turukame.exe /(X座標,Y座標,幅,高さ,エディタX座標,エディタY座標,エディタ幅,エディタ高さ,アドレス帳X座標,アドレス帳Y座標,アドレス帳幅,アドレス帳高さ)
 のような指定になります。さらに後ろに検索結果ウィンドウの位置/サイズも指定可能です。全部指定するとトータルで16個の数値を指定する形になります。