プロが教えるわが家の防犯対策術!

こんばんは

特定の差出人から、一定のパターンにマッチする件名のメールを受信した時に、そのHTMLメールの内容に応じて一定の処理を個なわせる方法を探しています。

質問内容:次のやりたいことを実現するために、お勧めするメールクライアントと基本的な処理の作り方を教えてください。

サーバーではなく、ローカルのWindows PCです。Win 7 Pro 64bit

具体的にやりたいこと
お客さんから次のようなメールが来ます。

件名:案件名 [案件番号] この仕事をお願いします。

本文:
お世話になっております~~~~中略
今回の案件の詳細は次の通りです。
<table><tr><td>番号</td><td>名前</td><td>作業量</td></tr></table>
よろしくお願いします。

このメールが来たら自動で次の処理がしたいです。(あくまで例です)
C:\Projects\[年]\[月]\[案件番号] というフォルダを自動で生成し
その下に、[資料]と[納品]というフォルダを作成し
メール本文に記載された[番号]と[名前]を取得してそれをエクセルに貼り付けて[番号].xlsという名前で保存する…

といった具合です。
つまり、特定の差出人や件名をチェックしてプログラムを起動し、さらにメール本文のHTMLから特定の個所を抜き出してその情報を使って何かしらの操作を行いたい、ということです。

HTMLメールのテーブルにはIDやクラスが指定されていませんでしたが、1番目のテーブルの1番目のセル、といった指定ができれば情報が取得できると思っています。メールの形式は固定的です。

現在使用しているメールクライアントはBecky! 2とThunderbirdです。

batは見よう見まねでぎりぎりかけます。上記の内容であればVBでも何とか対応できそうです。たぶん使わないと思いますがPHPであれば比較的自由にいじくれます。

最初のトリガーと本文からの情報取得方法がまったくわかりません。
よろしくお願いします。

A 回答 (2件)

サンダーバードは知りませんがメールソフトに関係なく自分で


メールサーバとデータ通信して内容解析するソフトを作らないと
どうしようもないのではないかと思います

メールソフトでやりたいなら該当するメールソフトのアドオンを
自分で自作するということになるでしょう
当然PC上で動作させるプログラムになるわけですから
言語としてはBATファイルとか PHHPってのは論外になるかと思います
最低限VB(VBAじゃない) 使ってプログラムを作らないといけないでしょうね
プラグイン作成の知識も必要になります


機能が違いますがメール経由で何か下の動作をするといったような
ソフトは存在します
そういったののを駆使することによってひょっとしたら
BATなどでもできるかもしれませんが使った事は無いのでわかりません
自分で試してください
例)
http://007.jp/jp/Feature/MialControl/MailCtrl.htm
http://www.vector.co.jp/soft/winnt/net/se322836. …
    • good
    • 1
この回答へのお礼

ありがとうございます。

> メールサーバとデータ通信して内容解析するソフトを作らないと
> どうしようもないのではないかと思います
と、私も思ったんです。PHPを使ってPOP3アカウントに接続してメールを取得して処理~という大がかりなことを想定していたのですが、ほかの回答者が答えてくれたとおりBeckyに標準装備されていました。

特定の条件に一致するメールが来た時に、指定したコマンドラインを実行する、というものです。
D:\hoge\test.bay %1
このように指定すると、%1にはそのメールのヘッダーや内容がはいったファイルまでのパスが取得できます。実際のファイルのパスではなく、実際のファイルをコピーしたものがテンポラリファイルにおかれて、そこまでのパスのようです。

なぜか bat しか起動できなかったので、そこから vbs を起動して処理を進めることにしました。操作内容が簡単なのでどの言語でやってもできそうですが、単純な処理なのでVBSでもなんとかかけそうです。

お礼日時:2014/05/22 09:39

Becky!の標準機能(フィルタリングマネージャ)で、「条件に合致したメールを、指定したプログラムを起動してメールを渡す」というのがありますので、VBScriptででもそういうプログラムを書いて、起動すれば良いと思います。


VBScriptであれば例としてお書きの処理は全部できます。面倒な物もありますが。
PHPであれば書けるのにと言うことであれば、PHPを起動してもいいかと。
    • good
    • 0
この回答へのお礼

ありがとうございます。

灯台もと暗し。Beckyに標準装備されてましたね。
フィルタリングマネージャーでプログラムを起動するを選んで、自作したbatを指定(vbsは動きませんでした、なぜか)しました。Beckyからはコマンドラインで呼び出す形になるのですが、%1という引数を指定するとそのメールをテンポラリフォルダに展開してそのパスを渡すことになるようでした。

あいにくHTMLメールが来てもそのHTMLファイル自体は渡さず、各種ヘッダー情報などに加えて、「表示上のテキスト」だけをまるっとコピペされた本文が取得できました。

「最初のテーブルの最初のTDから取得」といった指定はできませんでしたが、メールの形式が固定的なので、特定の文字列が出現したら次の行を prjNum という変数に、次の次の行を prjName という変数にといった具合に欲しい情報を入れることができました。

もちろん bat ファイルからPHPも起動できるようでしたが、単純な操作なので渡しでも VBScript で記述できそうです。

問題解決、ありがとうございました。

お礼日時:2014/05/22 09:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!