
クラシックASP版は、Visual Studio がなくてもテキストエディタがあれば開発可能です。
Excel VBAメール配信システムの機能は: 以下の機能を実装しています。




メール配信システムの機能は:
動作環境は:

編集リンクで個々の封筒の設定(envelopedit.aspx)を行います。

設定情報は、以下のとおり。
| 項目 | 説明 |
|---|---|
| この封筒からコピー | 他の封筒情報をコピーします |
| 送信予約日時 | 入力項目。yyyy/mm/dd hh:mm形式で送信日時を予約。予約リセット |
| 送信完了日時 | 完了日時を表示。ログファイルを中 キャンセルが可能です |
| ログダウンロード | 送信ログのダウンロード |
| 送信メール数 | 送信予定メール数 |
| 件名 | メールの件名 |
| Mailto | 宛先メールアドレス |
| アップロード | 複数アドレスの場合は、宛先ファイル(Excelかテキスト)のアップロードが必要 |
| 宛先ファイルのダウンロード | 宛先ファイルのダウンロード |
| 本文 | 本文ファイルをアップロードします。 |
| 添付ファイル | 添付ファイル(任意) |
| BCCとして送信 | BCCとして送信する場合、TOヘッダに指定する名前 |
| MailFrom | MailFrom(必須) |
| CC | CC(任意) |
| BCC | BCC(任意) |
| ヘッダー | ヘッダー(任意) |
| Excelシート名 | 読込み対象のExcelファイルのシート名。 |
| カラム位置 | 宛先ファイルの抽出条件。カラム位置 置換え項目1,置換え項目2,メールアドレス |
| SMTPサーバー名 | SMTPサーバー名またはIPアドレス。[:ポート番号] |
| テスト送信メールアドレス | テスト送信用メールアドレス(任意) |
| テスト送信ボタン | テスト送信実行 |
| %1% | テスト送信時の置換え項目名1。本文内の%1%を置換します(任意) |
| %2% | テスト送信時の置換え項目名2。本文内の%2%を置換します(任意) |
| 登録ボタン | 入力情報を保存します。 |
リプライ数リンクで、受信メールの確認画面(showmail.aspx)を開きます。

| ステータス | 説明 |
|---|---|
| 設定中 | 設定中の封筒 |
| スタンバイ | 送信予定日時を指定して送信待ち/td> |
| 送信中 | 送信中 キャンセル可能です/td> |
| 送信済み | 送信済み/td> |
スタンバイ状態にするには、[編集]画面で、
Excelファイルの場合は、[Excelシート名]で指定したシートからセルを読み取ります。
テキストファイルの場合は、カンマかタブで区切られたcsvファイル形式です。 1行目は、見出し行として無視されます。
編集画面の[カラム位置]を次のような順番で3個指定します。 3番目がメールアドレスです。
例1:[カラム位置]1,2,3
| 会社名 | 氏名 | メールアドレス |
|---|---|---|
| ABC商事 | ○○ 太郎 | ○○@□□.com |
| xyz会社 | ○○ 花子 | ○○@□□.com |
例2:[カラム位置]3,2,4
| ID | 氏名 | 会社名 | メールアドレス |
|---|---|---|---|
| 1000 | ○○ 太郎 | ABC商事 | ○○@□□.com |
| 1001 | ○○ 花子 | xyz会社 | ○○@□□.com |
例3:[カラム位置]1,1,1
| メールアドレス |
|---|
| ○○@□□.com |
| ○○@□□.com |
| 項目 | 32ビット環境 | 64ビット環境 |
|---|---|---|
| BASP21 Proインストール方法 | regsvr32 c:\b21\basp21p.dll | regsvr32 c:\b21\x64\basp21p.dll |
| Visual Studioデバッグ(IIS Express) | 既定 | レジストリ変更が必要(use64bitiisexpress) Visual Studio 2013の場合は[ツール]-[オプション]、 [プロジェクトおよびソリューション]-[Webプロジェクト]で 64ビットモードに設定できます |
| IISアプリケーションプール | 「32 ビットアプリケーションの有効化」を「True」 | 既定 |
| cscript/wscript実行 | C:\Windows\SysWOW64\CScript.exe | 既定 |
| Excelドライバー | 既定 Microsoft Excel Driver (*.xls) | Microsoft Access database engine 2010(Japanese) 64ビット版インストールが必要 Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) |
Visual Studio を起動します。
[ファイル]-[新規作成]-[Webサイト]でWEBサイトを作成します。

作成したWEBサイトフォルダのすべてのファイルを削除します。
ダウンロードしたサンプルzipファイルを展開します。
エクスプローラで、ダウンロードしたサンプルフォルダから ソースファイルをWebサイトフォルダにコピーします。
ソリューションエクスプローラでサイト名を右クリックして
[フォルダーの更新]をクリックします。
App_Codeフォルダには、2個のアクセスクラス。
GridViewのデータソースとして使用します。
次に[WEBサイト]-[参照の追加]で2個のCOMを追加します。


Visual Studio 2013 の場合は、BASP21 Pro ActiveX Controlを追加すると、 Net Framework 3.5 のインストール案内ダイアログが表示されます。 ダイアログに従って、インストールする必要があります。
ソリューションエクスプローラが以下のようになれば準備完了です。

画面は、以下の5画面です。
| 画面名 | 説明 |
|---|---|
| envelopmain.aspx | メイン画面 |
| envelopedit.aspx | 封筒情報編集 |
| showmail.aspx | 受信メール一覧 |
| fileupload.aspx | 宛先ファイル/本文ファイルアップロード処理 |
| download.aspx | ダウンロード処理 |
次に、ソリューションエクスプローラで[envelopmain.aspx]を右クリック、 [スタートページに設定]をクリックします。
F5 を押してデバッグを開始します。
以下のVBSファイルは、タスクスケジューラで定期実行(30分間隔)します。 デバッグが完了したら、デプロイ前にWEBサイトフォルダから削除しておきます。
Web.config は、封筒情報を保存するフォルダ名、封筒情報編集画面での項目の既定値を設定します。
<appSettings>
<add key="envelop_base" value="c:\b21\envelop"/> ..... 封筒情報を保存するフォルダ
<add key="mail_server" value="localhost"/> ........... メールサーバー
<add key="mail_from" value="tbaba@b2008r2a.jp"/> ..... MailFrom
<add key="excel_sheet" value="Sheet1"/> ..... 宛先ファイルのExcelシート名
<add key="col_pos" value="1,2,3"/> ................... 宛先ファイル(Excel/テキスト)カラム位置
<add key="test_mail" value="tbaba@b2008r2a.jp"/> ..... テストメールアドレス
<add key="excel_driver" value="Driver=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb); DBQ=%s;"/> .. Excelドライバー名
<add key="excel_driver32" value="Driver=Microsoft Excel Driver (*.xls); DBQ=%s;"/> .. 第2Excelドライバー名
</appSettings>
[追加]ボタンで以下のように[ツール]にメニューを追加します。
タイトル:VBScriptデバッグ実行(&D) コマンド:C:\Windows\System32\CScript.exe 32ビットモードでデバッグしたいなら:C:\Windows\SysWOW64\CScript.exe 引数://X $(ItemPath) $(ItemPath):外部ツールを起動するときに割り当てられる、Visual Studio の変数。 現在のファイルの完全なファイル名 (ドライブ + パス + ファイル名)。

デバッグしたいソースを開いてから、 [ツール]-[VBScriptデバッグ実行]をクリックするとデバッグを開始できます。
[追加]ボタンで以下のように登録します。

メール送信用スクリプト(SendMail.vbs)を指定します。

[プロパティ]画面で[トリガー]を開きます。 [編集]ボタンをクリック、[繰り返し間隔]を[30分間]と指定します。

同様にメール受信用スクリプト(RcvMail.vbs)を指定します。 開始時間は、メール送信より15分遅れ、[繰り返し間隔]は[1時間]とします。 メール受信が必要ない場合は、設定する必要はありません。
メール送受信スクリプト(SendMail.vbs/RcvMail.vbs)は、 環境に応じて変更が必要です。
SendMail.vbs ファイル 封筒フォルダは、あらかじめ作成しておく必要があります。 Const ENVELOP_BASE = "c:\b21\envelop" .... 封筒フォルダ名 Const BASP21_ENV = "env1" ................ Env名 Const EXCELDRIVER = "Driver=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb); DBQ=%s;" Microsoft Access database engine 2010(Japanese) をインストールしない場合は、 以下のように変更します。この場合、32ビットモードで実行します。 Const EXCELDRIVER = "Driver=Microsoft Excel Driver (*.xls); DBQ=%s;"
RcvMail.vbs ファイル 封筒フォルダは、SendMail.vbs と同じフォルダを指定します。 受信フォルダは、あらかじめ作成しておく必要があります。 Const ENVELOP_BASE = "c:\b21\envelop" .... 封筒フォルダ名 Const ENVELOP_MAILBOX = "c:\b21\mailbox" ... 受信フォルダ名 Const BASP21_ENV = "env1" ................. Env名 Const ACCOUNT1 = "box1,pop-server,user1,pass1" ... メールアカウント1 Const ACCOUNT2 = "box2,pop.gmail.com:995,user2,pass2"... メールアカウント2 メールアカウントは、以下の形式です。 サブフォルダ名,メールサーバー名,ユーザ名,パスワード メールアカウントの数に応じて、以下のように修正します。 mail_accounts = array(ACCOUNT1) mail_accounts = array(ACCOUNT1,ACCOUNT2,ACCOUNT3)
使用するドライバー文字列は、以下のとおりです。
通常、64ビット版のExcel Driver は、ダウンロード、インストールが必要です。
Microsoft Access database engine 2010(Japanese) 64ビット版。 http://www.microsoft.com/ja-jp/download/details.aspx?id=13255 (Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント) AccessDatabaseEngine_X64.exe をダウンロードしてインストールします。
システムで使用可能なExcelドライバーの確認方法は:
コマンドプロンプトからODBCデータソースアドミニストレーターを起動します。

Visual Studio 2012 ------------------ [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects] "Use64BitIISExpress"=dword:00000001 Visual Studio 2013 ------------------ [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects] "Use64BitIISExpress"=dword:00000001追記、Visual Studio 2013の場合は[ツール]-[オプション]、[プロジェクトおよびソリューション]-[Webプロジェクト]で設定できます。
