[ホーム] [会社概要] [製品] [サポート]
[BASP21 Pro] [FAQ] [アプリケーションガイド] [ユーザガイド] [リファレンス] [サンプル]
[FTP オブジェクト] [ソケット オブジェクト]

BASP21 Pro サンプル

BASP21 Proのサンプルプログラムを紹介します。 ソースコードをダウンロードしてお使いください。

クラシックASP版は、Visual Studio がなくてもテキストエディタがあれば開発可能です。


■ Excel VBA メール配信システム

Excelシートのメールアドレスに対して一括メール送信します。

Excel VBAメール配信システムの機能は: 以下の機能を実装しています。

フォームは、使わずにボタンのみシートに貼付けてます。
[設定]シートで環境パラメータを設定します。 複数の接続環境を定義できます。

[送信内容]シートで件名や本文、添付ファイルを設定します。 text/html タイプで画像埋め込みメールも送信可能です。

[@メール作成]ボタンでメールファイルをメールキューに作成します。
[AFlushMail]ボタンで、メール送信を実行します。
[クリア]ボタンで、メールキューフォルダのメールファイルを削除します。

個別のメールファイル名をダブルクリックすると メモ帳でメール内容をを確認できます。

メール送信中にキャンセル可能です。
緑字行が送信完了メールを示します。


■ メール配信システム (ASP.NET VB)

BASP21 Pro(32/64ビット版) を使うメール配信システムです。

メール配信システムの機能は:

動作環境は:

■ 操作画面
メイン画面(envelopmain.aspx)は、メール配信を封筒と呼ぶ単位で管理します。


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


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

リプライ数リンクで、受信メールの確認画面(showmail.aspx)を開きます。


■ ステータス
封筒には、ステータスという概念があります。
ステータス説明
設定中設定中の封筒
スタンバイ送信予定日時を指定して送信待ち/td>
送信中送信中 キャンセル可能です/td>
送信済み送信済み/td>

スタンバイ状態にするには、[編集]画面で、

  1. 宛先ファイルをアップロード
  2. 本文ファイルをアップロード
  3. 送信予定日時をyyyy/mm/dd hh:mm で指定して[登録]ボタン
■ 宛先メールファイルの形式
メール配信システムは、宛先メールアドレスをExcelシート、テキストファイルから読込みます。

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

■ BASP21 Pro 32/64ビット使い分け
64ビットOSでは、BASP21 Pro 64ビット版だけではなく、 必要に応じて、32ビット版のインストールが必要です。
項目32ビット環境64ビット環境
BASP21 Proインストール方法regsvr32 c:\b21\basp21p.dllregsvr32 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 サイト構成
メール配信システムは、Visual Studio で「WEBサイト」プロジェクトとして作成します。

Visual Studio を起動します。

[ファイル]-[新規作成]-[Webサイト]でWEBサイトを作成します。


作成したWEBサイトフォルダのすべてのファイルを削除します。

ダウンロードしたサンプルzipファイルを展開します。

エクスプローラで、ダウンロードしたサンプルフォルダから ソースファイルをWebサイトフォルダにコピーします。

ソリューションエクスプローラでサイト名を右クリックして [フォルダーの更新]をクリックします。
App_Codeフォルダには、2個のアクセスクラス。 GridViewのデータソースとして使用します。

次に[WEBサイト]-[参照の追加]で2個のCOMを追加します。

Microsoft ActiveX Data Objects Recordset 6.0 Library は、ソートで使います。



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 をVisual Studioでデバッグする方法
SendMail.vbs や RcvMail.vbs をデバッグするには、 Visual Studio の[ツール]-[外部ツール]で外部ツールへのリンクをメニューを登録します。

[追加]ボタンで以下のように[ツール]にメニューを追加します。

タイトル:VBScriptデバッグ実行(&D)
コマンド:C:\Windows\System32\CScript.exe
32ビットモードでデバッグしたいなら:C:\Windows\SysWOW64\CScript.exe

引数://X $(ItemPath)

$(ItemPath):外部ツールを起動するときに割り当てられる、Visual Studio の変数。
現在のファイルの完全なファイル名 (ドライブ + パス + ファイル名)。


デバッグしたいソースを開いてから、 [ツール]-[VBScriptデバッグ実行]をクリックするとデバッグを開始できます。

■ メール送受信処理をバックグラウンドで実行
メール送信処理(SendMail.vbs) や メール受信処理(RcvMail.vbs)は、 タスクスケジューラーに登録します。

[追加]ボタンで以下のように登録します。


メール送信用スクリプト(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)

■ 宛先ファイルのExcelシート読込み
宛先ファイルとしてExcelシートを読込むには、Excel Driver を使用します。

使用するドライバー文字列は、以下のとおりです。

通常、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データソースアドミニストレーターを起動します。

[ドライバー]-[名前]でMicrosoft Excel Driver を探します。
■ IIS Express 64ビットのデバッグ方法(Visual Studio 2012/2013)
Visual Studio 2012/2013 では、デバッグ時にIIS Express 8.0 を使用します。
既定で32ビット版IIS Express が起動されます。 そのため、64ビット版BASP21 Proが使えません。
64ビット版IIS Expressを起動するには、レジストリを変更する必要があります。





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




[ホーム] [会社概要] [製品] [サポート]
[BASP21 Pro] [FAQ] [アプリケーションガイド] [ユーザガイド] [リファレンス] [サンプル]
[FTP オブジェクト] [ソケット オブジェクト]

Copyright © 2001-2022 B21Soft, Inc. All Rights Reserved.