dポイントプレゼントキャンペーン実施中!

こんにちは ASPでbasp21を使ってメールを送るように作っているのですが
<%@ LANGUAGE = VBScript%>
<%
Dim strServer 'SMTPサーバ
Dim strTo '宛先
Dim strFrom '送信元
Dim strSub 'メール標題
Dim strBody 'メール本文
Dim strFile '添付ファイル
Dim result '戻り値
strServer = "abc.com"
strTo = "efg@abc.com"
strFrom = "mail@abc.com" & vbTab & "abc:hogehoge"
strSub = "件名"
strBody = "本文"
strFile = ""
set obj=server.createobject("basp21")
result = obj.SendMail(strServer,strTo,strFrom, strSub,strBody,strFile)

If result <> "" Then
Response.Write("メール送信エラー :" & result)
Response.End
End If

と言う感じで 何の変哲もない内容なんですが
実行すると

Active Server Pages, ASP 0115 (0x80004005)
外部オブジェクトでトラップできるエラー (C06D007E) が発生しました。スクリプトの実行を続行できません。

とでます
色々調べて 権限がないのかとも思い再セットして
DLLの確認もしましたが同じです
サーバーアドレスも:25を付けたりしましたが
同じです。

ただ、
strServer = "abc.com"
を 空白("")にすると
ちゃんとエラーで
メール送信エラー :Server name invalid
と出るのです

と言う事は オブジェクトの作成はできているの?
と言う感じで、どうもよく分かりません。

ちなみに 他のページで画像のアップロードに
FormSaveAs を使っていますが いたって快適に動きます

サーバーはIISで win2000でテストしています
wwwサーバーはONにしていますが
mailサーバーはOFFにしています
これは関係あるのでしょうか?

自分のマシンのmailサーバーは使わないからOFFで良いかなと
思ってそうしています。

どういうポイントが悪いのかよく分からないので
どなたか教えて頂けたらと思います
よろしくお願いします。

A 回答 (4件)

> 設置場所も大丈夫、レジストリ登録もOK


> またメール以外で画像登録も使っているのですが
> これはすんなりOKで動く・・・。

今日、同じ状況になっているPCにたまたま出くわしました。

BASP21.DLLもBSMTP.DLLもsystem32に入ってましたが、
全く同じエラーメッセージが出ていました。

そのPCを調査してみたところ、BSMTP.DLLのアクセス権が
おかしなことになっていました。
(DLLに一般ユーザの参照/実行権がついてない。)

BSMTP.DLLは、差し替え版がいくつかあるようで、
その差し替え手順を誤ると、DLLファイルのアクセス権が
おかしなことになる可能性があります。

BSMTP.DLLのプロパティ - セキュリティを表示し、
他のBASP21.DLLと同じアクセス権が付与されているか
確認することをお勧めします。
    • good
    • 0

こんにちは。



まず、そのメールサーバーは認証無しでSMTP接続ができるのかどうかがあります。POP3beforeSMTPの場合は受信することが必要です。

もうひとつ、メールアドレスは<>で閉じてあげるとよいかもしれません。
    • good
    • 0

画像のアップロードができるということは、BASP21.DLLは


正しく登録され、呼び出されるようになっていると思います。
メール送信は、BASP21.DLLからBSMTP.DLLを呼び出して実行するので、
やはりBSMTP.DLLが見つからない状態なのだと思います。
strServerを空白にするとエラーメッセージが返ってくるのは、
パラメータチェック段階でエラーになっているので、BSMTP.DLL
を呼び出す前の段階でエラー返却しているのだと思います。

BSMTP.DLLの設置場所は、C:\Windows\system32ですか? それ以外のフォルダですか?

system32以外のフォルダに設置しているなら、
「マイコンピュータ」のプロパティを開いて、
「詳細設定」タブの「環境変数」ボタンを押してください。
「システム環境変数」欄の「Path」変数にフォルダ名が
たくさん登録されていると思いますが、その中に
BSMTP.DLLを格納しているフォルダ名が登録されていますか?
なければ、そのフォルダ名を追加してください。
システム環境変数を追加した後は、一度OSを再起動してから
動作確認したほうがよいと思います。

ちなみに、ユーザ環境変数の方に登録されていても、そちらは
IIS(ASP)で実行するプログラムからは使われません。

あと、DLLをネットワークドライブや、特殊な認証を必要とする
暗号化ドライブ等に置いているような場合も注意が必要です。
IISは、あなたが今ログインして確認しているアカウントとは
別のユーザアカウントで実行していることに注意する必要があります。

system32以外のフォルダに設置しているのであれば、
試しにsystem32にDLLをコピーしてみたり、別のフォルダに設置して
みたりするとなにか解決の糸口が見つかるかもしれませんよ。
    • good
    • 0

http://www.bea.hi-ho.ne.jp/byoko/bnewslog30.html
でC06D007Eを探すと参考になると思います。

おそらくBASP21.DLLから呼び出すBSMTP.DLLが
見つからない状態なのではないかと推測します。

http://www.hi-ho.ne.jp/babaq/basp21.html
にあるように、system32 以外にDLLを置いた場合は、
PATH環境変数の設定が必要です。
    • good
    • 0
この回答へのお礼

お礼が遅くなりました

BASP21.DLLから呼び出すBSMTP.DLLが
見つからない状態

であることだけが分かったのですが、なかなかそこから先への解決が
できずに悩んでします。
設置場所も大丈夫、レジストリ登録もOK
またメール以外で画像登録も使っているのですが
これはすんなりOKで動く・・・。

もう少しがんばって調べてやってみようと思います。

回答ありがとうございます

お礼日時:2008/03/27 01:09

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