- ベストアンサー
コマンドプロンプトで添付ファイル付メールを自動送信させる方法
- バッチファイルを使用して、コマンドプロンプトで添付ファイル付きのメールを自動的に送信する方法について教えてください。
- 会社のPCの管理を目的として、バッチファイルをタスクスケジューラで定期的に実行し、使用状況のログを取得したいと考えています。ログファイルを圧縮してメールに添付し、管理用のPCに自動的に送信する方法を知りたいです。
- 「*.txt」と「*.htm」のログファイルをバッチファイルで作成し、それをメールに添付して送信したいです。圧縮は必須ではありませんが、フリーソフトや追加のソフトウェアを使用せずにメール送信する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
別途ソフトをインストールすることなくメールを送信するには、VBScriptなどを書く必要があります。 標準のコマンドプロンプトのコマンドで送信は無理。 サンプルは以下 http://winofsql.jp/VA003334/smalltech050911062006.htm これはCDOを使って、メーラーを通さず直接メールを送信しています。 圧縮したい場合は添付する前に圧縮の処理を入れれば良いかと思います。
その他の回答 (2)
- mk48a
- ベストアンサー率56% (1133/2007)
>下記の「start mailto~」の方法で、メールに添付ファイルを付ける手段が分かりません(TーT)どうぞ教えてください。 startコマンドはプログラムを起動するだけなので、添付ファイルを直接挿入するのは無理っぽいです。 その他の項目に関しては指定できます。(CC,BCC,件名など) http://www.atmarkit.co.jp/fdotnet/dotnettips/211startmail/startmail.html VBScriptでCDOでエラー時に間隔をおいて再送するようにするか、C++やVBなどでMAPIを使って送信するかにした方が良いかと思います。 MAPIを使用すれば、標準のメールクライアントの送信トレイにメッセージを入れることができるので、送信履歴も残ります。 他のプログラムを使用せずにメール送信する手段はこれくらいかと。 私としては、素直に外部プログラムを使うか、別途アプリケーションを作成するのがよいかと思います。
お礼
ありがとうございました。 教わった方法でなんとか試してみます。
- mk48a
- ベストアンサー率56% (1133/2007)
>上記を参考に試してみたのですが、PCがネットワークにつながっていない時にはエラーが出てしまいます。 CDOは直接SMTPサーバとやりとりするのでしょうがないかと。 >使用者がネットワークにつながっていない時に実行すると、添付ファイル付のメールがOutlook Expressで言えば送信トレイに収まって、次回ネットワークにつながった状態でメーラーを立ち上げた時に送信されるような方法があればよいのですが・・・ その場合はMAPIを使用することになると思いますが、メールを送信トレイに収めるところまではできますが、メーラーを立ち上げたときに送信するのはメーラーの設定になります。 MAPIは昔ちょっとさわっただけなので、よく覚えていないので、調べてみてください。 CDOでも運用で回避できるかもしれません。 エラーの際には間を置いて再送信するようにするなどすれば良いかと。 PCの使用状況をどのくらいの間隔で送信するかによりますが、オフラインの時間が長いようであれば、複数のメールを送信するようにVBScriptを追記する必要があるかもしれません。
補足
お返事が大変遅くなってしまい申し訳御座いません。 ご返信ありがとうございます。 下記の「start mailto~」の方法で、メールに添付ファイルを付ける手段が分かりません(TーT)どうぞ教えてください。
補足
ご回答ありがとうございます! 上記を参考に試してみたのですが、PCがネットワークにつながっていない時にはエラーが出てしまいます。 PCが常にネットワークにつながっていれば良いのですが、使用者がネットワークにつながっていない時に実行すると、添付ファイル付のメールがOutlook Expressで言えば送信トレイに収まって、次回ネットワークにつながった状態でメーラーを立ち上げた時に送信されるような方法があればよいのですが・・・ 因みに、コマンドで「start mailto:~」で新規メールの作成画面を表示することはできました(添付ファイルはつけられませんでしたが)。しかし、そこで使用者が「送信」を押さないと送信トレイに入ってくれません。使用者の操作無しに、送信は無理なのでしょうか・・