3

Ok。私は明らかに機能しているコードを使用しました(136個の緑色のチェックマークが付いたメインのトップアンサー): PHPページからGMailSMTPサーバーを使用して電子メールを送信します

私のphpメールスクリプトで、gmailユーザーを置き換えて自分のものに渡します...最初はPEARというエラーが発生し、次にPEAR5が見つかりませんでした...そこで2つのファイル(pearサイトからダウンロード)をにコピーしましたスクリプトのフォルダ...

それでも、スクリプトは機能しませんでした。

どこで停止するかを確認するためにいくつかのエコーを追加しました。この行で停止します(私は思います):

$mail = $smtp->send($to, $headers, $body);

私のapache/phpエラーログには次のように書かれています:

PHP致命的なエラー:未定義のメソッドPEAR_Error :: send()`の呼び出し

私はこのエラーをグーグルで検索し、12ページ以上を見つけましたが、答えは見つかりませんでした...ほとんどの場合、「梨ライブラリのインストール」について何かを言っているようです。

ローカルサーバーにpearをインストール/構成しようとはしていません。ウェブホストに新しいパッケージをインストールできるとは思わないため、よりポータブルなソリューションが必要です。これが意味するのは、動作するスクリプトです。相対クラスファイルすべてを1つのフォルダーにコピーして機能させることができます.....このフォルダーを任意のapache/phpサーバーにコピーするだけで、(html形式のスクリプトを参照することで)自動的に機能します。サーバーにサードパーティのパッケージをインストール/構成します。

同様の問題を引き起こしたphpmailerも試してみましたが、梨も必要なようですので、梨が機能しなくてもphpmailerを試してみる意味はあまりわかりません。

4

3 に答える 3

2

PHPの致命的なエラー:未定義のメソッドPEAR_Error :: send()の呼び出し

これは、おそらくログインに失敗したなどの理由で、メールオブジェクトではなくエラーオブジェクトを取得したことを意味します。コードに以下を追加します。

$mail = Mail::factory(..);
if (PEAR::isError($mail)) {
    echo $mail->getMessage() . "\n" . $mail->getUserInfo() . "\n";
    die();
}
$mail->send(...);

ところで、$ searchengineを使用してそのエラーメッセージを探すと、同じ答えが得られます。

于 2013-03-14T09:25:00.603 に答える
1

@cweiskeが述べているように、彼から提供されたコードを追加すると、詳細なエラーが発生します。私の場合は

ドライバsmtpのクラスが見つかりません

PHPの致命的なエラー:未定義のメソッドの呼び出しPEAR_Error :: send()

そのため、基本的に「Mail / smtp.php」をインクルードしようとし、Mail_smtpクラスをチェックしましたが、見つかりませんでした。したがって、Mail / smtp.phpが存在しないか、それを含めるとMail_smtpクラスが定義されませんでした。

これを解決するには、ここからPearメールをダウンロードし、メールフォルダをドメインにコピーするだけです。それでおしまい。コードは問題なく機能するはずです。

于 2014-09-08T00:25:55.523 に答える
0

このエラーにつながるのを助けてくれてありがとう:ドライバーsmtpのクラスが見つかりません

それが私をこのページに導きました:http: //goonanism.com/blog/2010/06/08/using-pear-to-send-email-via-smtp/

追加のファイルが必要だと言われました。ファイルを追加した後、それは機能しました。

問題が解決しました。しかし、これらのファイルの要件は、私のようなポータブルソリューションが必要な人のために、より適切に文書化する必要があると思います:)

于 2013-03-14T14:46:12.187 に答える