電子書籍の厳選無料作品が豊富!

ASPを使ってwebアプリ見たいなのを作ろうとしています。
データの登録時に予め登録されてているユーザに登録された旨を伝える
メールを送信したいです。

いろいろ試した結果、直でbsap21を呼び出すのではなく、bsmtp.dllを
呼び出して送信するほうが動きがいい(というか、basp21のほうはSMTPサーバに接続しない)ので、その方向で行きたいのですが。。。

見つけたコードが以下です。
------------------------------------------------------------
Private Declare Function SendMail Lib "bsmtp"_
(strServer As String, strTo As String, strFrom As String, _
strSubject As String, strBody As String, strFile As String) As String

Public Function SendViaBASP() As String
Dim strMailServer As String: strMailServer = "***.***"
Dim strFrom As String: strFrom = "hoge@hoge.com"
Dim strTo As String: strTo = "hoge@hoge.com"
Dim strBcc As String: strBcc = ""
Dim strToBcc As String: strToBcc = ""
Dim fHTML As Boolean: fHTML = False
Dim strSubject As String
Dim strBody As String
Dim strAttachments As String: strAttachments = ""
Dim strRet As String

strSubject = "BASP21"
strBody = "このメールは、BASP21経由で送信しました."

If Len(strTo) Then
strToBcc = strTo
Else
strToBcc = strBcc
End If

If fHTML Then
strToBcc = ">Content-Type: text/html; charset=iso-2022-jp" _
& vbTab & strToBcc
End If
strRet = SendMail(strMailServer, _
strToBcc, strFrom, strSubject, strBody, _
strAttachments)

SendViaBASP = strRet
End Function
---------------------------------------------------------------
で、これをACCESSのモジュールに登録し、実行したところ問題なく
動くのですが、これをASPに組み込む方法がわかりません。
ACCESSはデータの登録先ではありますが、常に起動しているわけでは
ないので、おそらくモジュールとした場合、動かないですよね?

ASPから上記のコードを動かすには、どうしたらいいでしょうか。
普通にASPの中(<%~%>)に入れると「ステートメントの末尾が不正」
とのメッセージがでてしまいます。

どうかよろしくお願いします。

A 回答 (1件)

開発しているのはクラシックな ASP だと思うのでサーバーサイドで実行するコードは VBScript で記述するはずです。


で、質問にあるコードは VBScript 向けではなく、おそらくは VB や VBA 向けだと思います。
その理由ですが、
1. VBScript は Declare ステートメントを使えません。
したがって DLL を直接呼ぶことはできません。
Set bobj = Server.CreateObject("basp21")
のようにしてください。

2. VBScript は Variant型しかサポートしていません。
そのため "As xxxx" は利用できません。
変数の宣言は
Dim a As String ← NG
Dim a ← OK
自作関数
NG ケース
Private Function MyFunc(aName As String) As String
 MyFunc = "あなたの名前は" & aName & "です"
End Function
OK ケース
Private Function MyFunc(aName)
 MyFunc = "あなたの名前は" & aName & "です"
End Function
    • good
    • 0

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