[PHP-users 31265] Re: メール送信をCDO.Messageで行った場合Access Violationになる現象について

kubota kubota_s @ sis-pros.co.jp
2007年 1月 15日 (月) 15:42:20 JST


回答有難うございます。

>>  メール送信のサンプルソースを参考に、下記のファイルを
>> ローカル環境で試したのですが、"PHP has encountered
>> an Access Violation at 01369B35"とエラー表示されて解決
>> 出来ないでいます。
> とのことですが、どこの行でエラーになっているのでしょうか?
> どこまでは、「正常に処理できている」という情報も重要な情報に
> なろうかと。
3行目の送信先アドレスを設定している箇所でエラーとなりました。
<?
$message = new COM("CDO.Message");
$message->To = '送信先アドレス';        <== ココを実行時にエラーとなります
$message->From = '送信元アドレス';
$message->Subject = "This is a subject line";
$message->Send();
?>

> 「an Access Violation」ということなので、最初でこけていそうな
> 気がしますので、それを前提として、想定されることは...
> 
> 1.「COM」のインターフェイスが壊れてる。
> http://www.php.net/manual/ja/class.com.php
> あたりのサンプルで、動作の確認をしてみてはいかがでしょうか?
サンプルを実行したのですが、newを行った場所で"PHP has encountered
an Access Violation at 64726F77"が発生しました(Word2000を
インストール済みです)。

<?php
// word を起動します
$word = new COM("word.application") or die("Unable to instantiate Word"); <== ココを実行時にエラーとなります
  :
  :
?>

> 2.CDO自体が存在しない。
>> Windows XP Professional SP2
> ということで、一番、可能性が高いような気がしますが、CDO.DLLは
> インストールされてますか?
> ファイル直接検索、もしくは、Office製品のVBA Editorから、
> [参照設定]に、Microsoft CDO 1.xx Libraryがあるか確認。
CDO.DLLは有りませんが、"C:\Windows\System32\CDOSYS.DLL"は存在します。

> 3.IIS上の設定不足
> 特に、設定はなかったように思いますが、もし、ASPが分かれば、
> そちらで、CDOが正常に動作していることを確認してみた方が
> よいかもしれませんね。
VBScriptを使用してのメール送信(CDO.Messageを使用)では、宛先にメールが
送られたのを確認しております。



PHP-users メーリングリストの案内