過去の桐井戸端BBS (桐ver.9)
20408 シェル実行でメール送信を行いたいが変数の値を件名に入れるにはどうしたらいいのでしょうか katsuyoshi 2003/05/19-13:16
またお世話になります。
一括でメール送信を行いたいと思っていますがシェル実行で
Outlook Expressを起動し宛先は入れることができましたが
件名に変数で求めた値を入れたいと思うのですが記述の方法を教えて下さい。
....................................................
入れたいデータ  月日(日時型)
次のように記述しましたがうまく動いてくれません。

変数宣言 固有,文字列{&報告月日}
 表 "○○.tbl"
&報告月日=#文字列([報告月日])
 終了 表

 確認 "これよりEメール送信の準備に入ります",&確認
  if(&確認=1)
 シェル実行 "C:\Program Files\Outlook Express\msimn.exe"
  シェル実行 "Mailto:○○@nifty.com" + "?subject=" + &報告月日,&OK
   シェル実行 "D:\○○\○○\"
 end

件名に報告月日を入れるため変数値を取得するとき文字列に変換しています。
Outlook Expressが起動し、送信先の入っているメール作成画面とD:\のデータの入っているフォルダーは開きます。
よろしくお願いします。


20410 Re:一括処理でメール送信のシェル実行について 通りすがり(常駐モード) 2003/05/19-14:01
記事番号20409へのコメント
過去ログにもこれに関することはいろいろと出ています。
「メール」とか「Mailto」などで検索すれば、いろいろと出てきます。
いろいろと検索してみては?

>シェル実行 "C:\Program Files\Outlook Express\msimn.exe"
これは、必要あるんだろうか?

>シェル実行 "Mailto:○○@nifty.com" + "?subject=" + &報告月日,&OK
だけでいいような気がしますが。
メーラーがOutlookが標準ならば、関連付けられているメーラーが立ち上がると思うんだけど。

>シェル実行 "D:\○○\○○\"
添付ファイル用のフォルダですかね??


20411 Re:一括処理でメール送信のシェル実行について 通りすがり(常駐モード) 2003/05/19-14:03
記事番号20410へのコメント
http://www.fuku3.com/~habata/cgi-bin/bbs/bbs.cgi?num=20124&ope=v&page=2&id=
以下のスレッドに、Mailtoの書式があります。
20422 Re:通りすがりさんへ masa 2003/05/19-19:23
記事番号20411へのコメント
通りすがり さんこんばんわ
http://www.fuku3.com/~habata/kbbs/kakov8/20124.htm
>以下のスレッドに、Mailtoの書式があります。


20434 うまくできましたが欲を言うと・・・・・・ katsuyoshi 2003/05/20-08:53
記事番号20411へのコメント
通りすがり(常駐モード)さんありがとうございました。
レス遅くなり申し訳ありませんでした。
過去ログを検索したのですが件名に変数を使うのが見つかりませんでした。
何とかうまくできました。
ただOutlook Expressとデータの入っているフォルダーとメール作成と
3画面が開くとOutlook Expressがメインになりフォルダーとメール作成画面がタスクに格納されます。
できればOutlook Expressが最後面でフォルダーとメール作成画面が全面に出せれば最高なのですがそんなことできますか?
お願いします。
20442 Re:うまくできましたが欲を言うと・・・・・・ 通りすがり(常駐モード) 2003/05/20-13:12
記事番号20434へのコメント
>できればOutlook Expressが最後面でフォルダーとメール作成画面が
>全面に出せれば最高なのですがそんなことできますか?
桐で直接的にWinアプリのウインドウサイズやアクティブ化はできないと思います。
VBSなどでsendkeysなどが必要かと。
あとは、事前にウインドウが重ならないようなサイズと位置にしてメーラーを終了し、
次回起動時には元のサイズを復元させて重ならないようにするとか・・・・。

メーラーですが、Outlook Expressだけにこだわるとこういうことになるのでは?
メール送信が目的であれば、コマンドラインでのメール送信用の外部モジュールを利用するとか。

そのための「過去ログ」だったのですが・・・・・。

「過去ログ」にはいろいろと出ていますよ。


20443 Re:うまくできましたが欲を言うと・・・・・・ hidetake 2003/05/20-13:46
記事番号20442へのコメント
>VBSなどでsendkeysなどが必要かと。

WSH(VBS)って結構面白いし,これに WMI を組み合わせると
更に楽しいです。


例えば,質問とは逆に Outlook Express を最前面に持ってきてアクティブにするには次のような VBS になります。
但し WMI を使った方法ですので,標準だと Windows2000以降で,
あるいは WMI を別途インストールする必要が出てくる OS もあります。
--------------------------------------------------------
Dim WS
Set WS = WScript.CreateObject("WScript.Shell")
For Each Process in
GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select *
from Win32_Process where Name='msimn.exe'")
WS.AppActivate Process.ProcessID
Next
Set WS = Nothing
WScript.Quit
--------------------------------------------------------
上記スクリプトは msimn.exe と言う実行ファイル名の
プロセスのプロセスID を WMI で拾ってきて AppActivate でアクティブにします。

WMI を使わずに AppActivate "Outlook Express" と言った
ウィンドウタイトルでアプリケーションをアクティブにする
方法もありますが,これだとウィンドウタイトルが変化したり
複数あった場合に不安定になります。


WMI に関しては次のようなところでも参考にして下さい。


WMI Fun !! 〜 WMI に興味がある方・システム管理者必見 !! 〜
http://homepage2.nifty.com/tcubic/wmifun/

WMI Reference
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_reference.asp


他に例えば桐自身のウィンドウハンドルを取得するには次のような感じになります。

i = 0
Dim alWnd()
ReDim alWnd(1000)
For Each Process in
GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("SELECT *
FROM Win32_Process WHERE NAME='kiri8.exe'")
alWnd(i) = Process.Handle
i = i + 1
Next
If i > 0 Then ReDim Preserve alWnd(i - 1) Else Erase alWnd
MsgBox Join(alWnd, ",")


20444 Re:うまくできましたが欲を言うと・・・・・・ hidetake 2003/05/20-13:49
記事番号20443へのコメント
>WSH(VBS)って結構面白いし,これに WMI を組み合わせると
>更に楽しいです。

ただ単に桐からメールを送ったりするには Outlook Express や WSH 等を使うより,
コマンドライン型のメーラや ActiveX 経由での送信の方が簡単だとは思います。

まぁ〜,桐のできない事を補うには先のような手法を使うのも楽しいかと?
言う事です。 (^_^ゞ


20453 Re:うまくできましたが欲を言うと・・・・・・ 通りすがり(常駐モード) 2003/05/20-17:13
記事番号20444へのコメント
>ただ単に桐からメールを送ったりするには Outlook Express や WSH 等を
>使うより,コマンドライン型のメーラや ActiveX 経由での送信の方が簡単
>だとは思います。

賛成です。
送付先と添付ファイルを事前に桐で選択してから、バッチでもいいし直でもいいし
コマンドライン型メーラーにパラメーターを渡して起動・・・・。
これが一番簡単ですね。

過去ログにも同様の話題がいっぱい出ているし。


20454 別アプリは難しいです。 katsuyoshi 2003/05/20-17:14
記事番号20442へのコメント
通りすがり(常駐モード)さん、hidetakeさんありがとうございました。
確かにいろいろなソフトが有りそれなりに特徴が有るかと思いますが
こちらの環境はOutlook Expressを県内グループ全体でのメーラーとして使っており、
変更は認められません。
よって今の状態であきらめるしかありません。
ご面倒おかけしました。

20455 Re:うまくできましたが欲を言うと・・・・・・ hidetake 2003/05/20-18:06
記事番号20443へのコメント
>例えば,質問とは逆に Outlook Express を最前面に持って
>きてアクティブにするには次のような VBS になります。

これって,これを繰り返して,順に上に持ってきたい
アプリケーションをかぶせていけば・・・
希望のレイアウトにはなりませんか?

凝った作りを希望すれば,やはり細かい作業や知識や
やり方を積み上げていく必要があるかと思います。

ウィンドウのサイズや位置まで任意に制御したいとなると,
これまた,もっともっと難しい(面倒な)処理が必要になってきます。

私はブラウザの mozilla を使っていますが,
これの起動時に,ブラウザのサイズと位置,それにブックマークのサイズや
開く位置などの制御で ScriPlayer Pro32 とVBS を使って制御しています。

ScriPlayer Pro32 に関してはもう売られているような商品ではありませんが,
ここのログにも出てきます。

と言うことで,目的をやり遂げるには簡単に済ます方法もいろいろありますし,
希望によっては面倒な方法で凝ってやる方法もあります。

でも,これ以上のことは桐から大きく外れた内容でしょうし,
私自身が危険な Outlook & Outlook Express は
使っていない事もあって,実際に動かせません。
ですので,これ以上のコメントはできません。


20458 Re:別アプリは難しいです。 通りすがり(常駐モード) 2003/05/20-22:02
記事番号20454へのコメント
>こちらの環境はOutlook Expressを県内グループ全体でのメーラーとして
>使っており、変更は認められません。

メーラーを変更しなければならないということではないのです。
あくまで「送信」の部分だけを他のモジュールに託すだけです。
受信はあくまでOutlook Expressで、通常のメール送信もこのままでいいんです。
あくまで「送信」だけですよ。
BCCで送信すれば送信控えも受信可能ですし。


20467 Re:別アプリは難しいです。 たかし 2003/05/21-14:55
記事番号20454へのコメント
katsuyoshiさん、こんにちは。

> 変更は認められません。
> よって今の状態であきらめるしかありません。

ということで、The End というのを引き留めるつもりではありませんので
あきらめをなされてもいいのですが、老婆心ながら一言。

私もOutlook Expressしか使ってませんが、桐からメールを送るのに
cmail を利用させてもらって、毎日、桐の一括処理から数件送信しています。
(宛先ごとに、それぞれの内容は変えていますが...)

通りすがり(常駐モード)さんも言われてますが、メーラーを変更する
必要はないのですよ。勘違いなさっているようにあったので..

過去ログにほんとに沢山の宝の情報がありますので、探してみて下さい。
同じ内容の事を、繰り返してここに載せるのは如何かなと思いますので略します。
20471 Re:別アプリは難しいです。 katsuyoshi 2003/05/21-20:37
記事番号20467へのコメント
たかしさんありがとうございます。
確かに勘違いをしていたようです。
メーラーの変更のように受け止めていました。
過去ログを探りながら研究してみようと思います。
また壁にぶち当たったらご指導をお願いします。
20472 Re:別アプリは難しいです。 katsuyoshi 2003/05/21-20:41
記事番号20458へのコメント
通りすがり(常駐モード)さん
ありがとうございます。

メーラーの変更とは違う内容のようですので過去ログを探りながら頑張ってみます。
またご指導お願いします。

戻る