1.0.19J + cfFormMailerでメールフォームから送信するとFatal errorになります  【解決済み】

質問全般・改善要望
返信する
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19J + cfFormMailerでメールフォームから送信するとFatal errorになります

投稿記事 by ryocka »

こんにちは。
cfFormMailerはGitHub(modxcms-jp)のものを使用しています。

まだローカル環境(XAMPP)のみで動作確認中ですが
メールフォームから送信を行うと
Fatal error: Class 'SMTP' not found in サイトディレクトリ\manager\includes\controls\phpmailer\class.phpmailer.php on line 538
エラーで送信できません。

class.phpmailer.php と class.smtp.php を1.0.18Jのもので上書きすると送信できますが、1.0.19Jのアップデートに先日のPHPMailerの
セキュリティfixを含んでいますので、可能でしたら最新のphpソースを使用したいです。
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19J + cfFormMailerでメールフォームから送信するとFatal errorになります

投稿記事 by ryocka »

本番環境も1.0.19Jにアップデートしましたが、同じ現象になります。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19J + cfFormMailerでメールフォームから送信するとFatal errorになります

投稿記事 by yama »

たぶんSMTP送信を行なうケースですよね?PHPMailerのコードを確認してみましたが、classファイルの読み込み方がいつのバージョンからか変わっているみたいで、そのためにsmtp送信の処理を読み出せません。
PHPMailerのコードを書き換えずにスマートに対応する方法があると思いますので、調べてみます。
とりあえず必要な場合は、MODXではPHPMailerの脆弱性の影響を受けないので、1.0.18Jのものを使っていただいて問題ないと思います。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19J + cfFormMailerでメールフォームから送信するとFatal errorになります  【解決済み】

投稿記事 by yama »

manager/includes/extenders/ex_modxmailer.php をテキストエディタで開いて「case 'smtp':」という文字列を探し、次の行に

コード: 全て選択

include_once(MODX_CORE_PATH . 'controls/phpmailer/class.smtp.php');
という記述を挿入すると動作すると思います。確認いただいてよいですか?
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19J + cfFormMailerでメールフォームから送信するとFatal errorになります

投稿記事 by ryocka »

こんばんは。
たぶんSMTP送信を行なうケースですよね?
SMTPに設定していました。

class.phpmailer.php と class.smtp.php を1.0.19Jのものに戻し、ご提示いただいたコードの追記にてエラーなくメール送信ができるようになりました。

お調べ頂きまして誠にありがとうございました。
※解決済みとさせていただきます。
返信する