- 締切済み
ASPでメール送信時エラーが出る
こんにちは 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で良いかなと 思ってそうしています。 どういうポイントが悪いのかよく分からないので どなたか教えて頂けたらと思います よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Lchan0211
- ベストアンサー率64% (239/371)
> 設置場所も大丈夫、レジストリ登録もOK > またメール以外で画像登録も使っているのですが > これはすんなりOKで動く・・・。 今日、同じ状況になっているPCにたまたま出くわしました。 BASP21.DLLもBSMTP.DLLもsystem32に入ってましたが、 全く同じエラーメッセージが出ていました。 そのPCを調査してみたところ、BSMTP.DLLのアクセス権が おかしなことになっていました。 (DLLに一般ユーザの参照/実行権がついてない。) BSMTP.DLLは、差し替え版がいくつかあるようで、 その差し替え手順を誤ると、DLLファイルのアクセス権が おかしなことになる可能性があります。 BSMTP.DLLのプロパティ - セキュリティを表示し、 他のBASP21.DLLと同じアクセス権が付与されているか 確認することをお勧めします。
- MYCABIN
- ベストアンサー率100% (3/3)
こんにちは。 まず、そのメールサーバーは認証無しでSMTP接続ができるのかどうかがあります。POP3beforeSMTPの場合は受信することが必要です。 もうひとつ、メールアドレスは<>で閉じてあげるとよいかもしれません。
- Lchan0211
- ベストアンサー率64% (239/371)
画像のアップロードができるということは、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をコピーしてみたり、別のフォルダに設置して みたりするとなにか解決の糸口が見つかるかもしれませんよ。
- Lchan0211
- ベストアンサー率64% (239/371)
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環境変数の設定が必要です。
お礼
お礼が遅くなりました BASP21.DLLから呼び出すBSMTP.DLLが 見つからない状態 であることだけが分かったのですが、なかなかそこから先への解決が できずに悩んでします。 設置場所も大丈夫、レジストリ登録もOK またメール以外で画像登録も使っているのですが これはすんなりOKで動く・・・。 もう少しがんばって調べてやってみようと思います。 回答ありがとうございます