メールに添付されたファイルの拡張子にしたがって保存するディレクトリを振り分けたい
キーワード:メール,Mail,拡張子,添付ファイル,振り分け
概要
メールに添付されたファイルごとにディレクトリを割り振って保存したい場合、スクリプト変数を使用して、ディレクトリ作成処理および移動処理を行います。サンプルプロジェクトの説明
メールを受信し、添付ファイルが存在する場合、以下のルールにしたがってディレクトリを作成し、添付ファイルを移動します。<システム日付>/<会社コード>/<拡張子>/
- 第一階層:「システム日付(yyyyMMdd)」ごとにディレクトリを作成します。
- 第二階層:メールの件名の冒頭6文字に「会社コード」が含まれており、その「会社コード」ごとにディレクトリを作成します。
- 第三階層:メールに添付されるファイルは、XML形式(.xml)および固定長形式(.dat)の2種類であり、その「拡張子」ごとにディレクトリを作成します。

処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。- 「メール受信(POP3)処理」でPOP3サーバからメールを受信します。
- 「繰り返し(データ件数)処理」で受信メールの件数分、処理を繰り返します。
- 「変数代入処理」で添付ファイル名をスクリプト変数に格納します。
- 「条件分岐処理」を行い、添付ファイルが存在する場合は処理を続行し、添付ファイルが存在しない場合は次のメールを読み取ります。
- 「変数代入処理」でシステム日付・会社コード・拡張子をスクリプト変数に格納します。
- 「ディレクトリ作成処理」で保存ディレクトリを作成します。
- 「移動処理」で添付ファイルを移動します。

ポイントとなる機能
名前 | 説明 | ツールパレット上の場所 |
---|---|---|
ディレクトリ作成処理 | 新規にディレクトリを作成します。 | 「ファイル」-「ファイル操作」-「ディレクトリ作成」 |
移動処理 | ファイルまたはディレクトリを移動します。 | 「ファイル」-「ファイル操作」-「移動」 |
処理のポイント
スクリプト変数を使用してディレクトリ作成処理および移動処理を行います。サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。サンプルプロジェクトのダウンロード | 逆引きリファレンス シナリオ002のサンプルプロジェクト |
---|
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_002.zip」を展開します。 - プロジェクトのアップロード
「rl_reference_002.zip」を展開後に作成される「rl_reference_002プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_002プロジェクト」をアップロードしてください。 - サンプルデータの準備
「rl_reference_002.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。 - グローバルリソースの設定
コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、POP3メール受信サーバ接続設定のグローバルリソースを追加します。
グローバルリソースの設定方法については、DataSpider Servistaヘルプの「グローバルリソースのプロパティ」を参照してください。
- サンプルメールの送信
以下の例と同様のサンプルメールを作成し、送信します。
メールの形式は「テキスト形式」とし、「件名」の先頭6文字に会社コードを入力してください。メール内容(1通目)
件名 cmp001 発注ファイル送付 本文 発注書ファイルを送信いたします。
ご確認をお願いいたします。
株式会社○○○○○
担当者△△△△添付 sample.xml メール内容(2通目)
件名 cmp002 発注ファイル送付 本文 発注書ファイルを送信いたします。
ご確認をお願いいたします。
株式会社□□□□□
担当者▽▽▽▽添付 sample.dat
スクリプトの作成手順

- 添付ファイルの保存先として使用するスクリプト変数を作成します。
- スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 変数型 初期値 会社コード 文字列型 システム日付 文字列型 添付ファイル名 文字列型 ファイルタイプ 文字列型
- スクリプト変数のプロパティは、以下のように設定します。
- デザイナのツールパレット「ネットワーク」-「メール」-「メール受信(POP3)」から、メール受信(POP3)処理をスクリプトキャンバスに配置します。
- メール受信(POP3)処理の設定は、メールの受信が可能となるよう、それぞれの環境に合わせて行います。
なお、メールの添付ファイルを使用するため、以下の通り[添付ファイル]タブの[添付ファイルを受信]にチェックを入れます。[添付ファイル]タブ
- メール受信(POP3)処理の設定は、メールの受信が可能となるよう、それぞれの環境に合わせて行います。
- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
- 繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
- 繰り返し(データ件数)処理の設定は、以下のように行います。
- デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable」)をスクリプトキャンバスに配置します。
- 変数代入処理(「variable」)のMapperエディタを開き、入力元の添付ファイルパスをスクリプト変数の添付ファイル名にマッピングします。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
- マッピングキャンバスは、以下のように設定します。
- デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
- 条件の設定は、以下のように行います。
[必須設定]タブ
- 条件の設定は、以下のように行います。
- デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable(1)」)をスクリプトキャンバスに配置します。
- 変数代入処理(「variable(1)」)のMapperエディタを開き、システム日付・会社コード・拡張子をスクリプト変数に格納します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 左文字列 入力文字列の左から指定文字数切り取って返します。
[必須設定]タブの[文字数]は「6」を入力します。「文字列」-「関数」-「左文字列」 (2) 現在日時 現在日時を出力します。 「日付」-「基本」-「現在日時」 (3) 日時フォーマッティング 入力日時を指定したフォーマットで出力します。
[必須設定]タブの[フォーマット]は「yyyyMMdd」を入力します。「文字列」-「日付」-「日時フォーマッティング」 (4) 右文字列 入力文字列の右から指定文字数切り取って返します。
[必須設定]タブの[文字数]は「3」を入力します。「文字列」-「関数」-「右文字列」 (5) 連結 複数の入力文字列を連結して返します。
[必須設定]タブの[入力数]は「2」を入力します。「文字列」-「演算」-「連結」 (6) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「data」を入力します。「文字列」-「基本」-「単一行文字列定数」
- マッピングキャンバスは、以下のように設定します。
- デザイナのツールパレット「ファイル」-「ファイル操作」-「ディレクトリ作成」から、ディレクトリ作成処理をスクリプトキャンバスに配置します。
- ディレクトリ作成処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- [ディレクトリ名]および[作成先]にスクリプト変数を使用することで、スクリプトを改修せずに動的に設定値を変更することができます。
スクリプト変数は、以下の方法で素早く入力できます。- 入力フィールドにフォーカスをあてて表示させる変数入力アシスタント機能から選択します。
- 入力フィールドの右クリックメニューで[スクリプト変数]を選択します。
- [ディレクトリ名]および[作成先]にスクリプト変数を使用することで、スクリプトを改修せずに動的に設定値を変更することができます。
- ディレクトリ作成処理の設定は、以下のように行います。
- デザイナのツールパレット「ファイル」-「ファイル操作」-「移動」から、移動処理をスクリプトキャンバスに配置します。
- 移動処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- [移動元]および[移動先]にスクリプト変数を使用することで、スクリプトを改修せずに動的に設定値を変更することができます。
スクリプト変数は、以下の方法で素早く入力できます。- 入力フィールドにフォーカスをあてて表示させる変数入力アシスタント機能から選択します。
- 入力フィールドの右クリックメニューで[スクリプト変数]を選択します。
- [移動元]および[移動先]にスクリプト変数を使用することで、スクリプトを改修せずに動的に設定値を変更することができます。
- 移動処理の設定は、以下のように行います。
- スクリプトを実行し、正常終了すれば成功です。