クラシック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プロジェクト]で設定できます。