0

Mac OS X で MAMP 2.1.1 (MAMP Pro ではない) を使用しています。HTML メールを送信するための PHP コードを書きたいと考えています。

mail、mail_mime、および net_smtp をインストールしました。http://pear.php.net/manual/en/package.mail.mail.send.phpにある例を試してみると、常に「500 Internal Server Error」が発生します。php_error.log を確認したところ、「PHP Fatal error: Class 'Mail' not found」と表示されています。そして、私は試しました

<?php
require_once('Mail.php');
var_dump(class_exists('Mail', false));
?>

bool(false) bool(false) を返します

すべてのファイルとパスを確認しましたが、すべて問題ないようです。そして、ubuntuサーバーで同じコードを試しましたが、すべて問題ありません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

今年、Mountain Lion をクリーン インストールしました。現在、MAMP の代わりに組み込みの apache、php、および mysql を使用しています。ただし、この問題は現在の環境にまだ存在することがわかりました。

しかし、コードを機能させることができる不完全な解決策があります。require/require_once を呼び出す前に、次の行を追加します。

ini_set('include_path', ini_get('include_path') . ':/usr/lib/php/pear');

その後、メール機能が動作します。

この行がないと、私のマシンのインクルード パスは.:/usr/local/php5/lib/php. 問題の原因が間違ったパスであることがわかります。何らかの理由で、PEAR が別のパスにインストールされ、php.ini が正しく設定されていません。

このソリューションをマシンで試すことができます。まず、pear のインストール パスを見つけて、それに応じてその行を変更し、コードに挿入します。

この解決策が少しのヒントになることを願っています。そして、より良い解決策を共有していただければ幸いです。

于 2013-04-08T18:10:28.733 に答える