質問箱/3261

カテゴリ
サマリページを更新すると「pkwk_mail_notify(): Failed」と表示され、更新ができません。
バージョン1.4.6
投稿者tsuge?
状態完了
投稿日2005-11-24 (木) 23:58:24

質問

下記の通りpukiwiki.ini.phpを設定しているのですが、 ページを更新すると「pkwk_mail_notify(): Failed」と表示され、更新ができません。

// Send mail per update of pages
$notify = 1;

// Send diff only
$notify_diff_only = 1;

// SMTP server (Windows only. Usually specified at php.ini)
$smtp_server = 'localhost';

// Mail recipient (To:) and sender (From:)
$notify_to   = 'uaer@provider.ne.jp';	// To:
$notify_from = 'pukiwiki@mydomain.com';	// From:

回答

  • 取りあえず更新通知メールを諦めたら、更新そのものは出来るのですね?また、そのサーバは、PHPからメールが送信できる環境ですか? -- 2005-11-25 (金) 00:18:09
  • その通りで更新・PHPからメール送信は可能です。 -- tsuge? 2005-11-25 (金) 00:41:07
  • phpからsendmailへのパスは正しく設定しています。PHPがMUAとしてのsendmailコマンドにメールを引き継いだ後で、sendmailコマンドがローカルホストのSMTPサーバに渡そうとして失敗しているようです。phpからのメールは送信しましたと表示されるが、toには届かないです。
    PukiWikiの問題ではなさそうです。どうも失礼しました -- tsuge? 2005-11-27 (日) 15:33:31

質問-2

  • 上記と同様にnotifyがFailしてしまいます。場違いの質問かもしれませんが、"PHPからメールの送信は可能"かどうかはいかにして確かめればよいのでしょうか。ちなみにOutlookからメールの送受信はできており、それをSMTPサーバとしてpukiwiki.ini.php内で指定しています。 -- pkwk初心者? 2006-10-24 (火) 11:07:27

回答-2

  • 利用者であれば当然に閲覧できる筈の仕様を読む。管理者に問い合わせる。phpinfoの出力を見て、mail送信に関する設定が適切に行われているか確認し、実際にmb_send_mail()を試してみる。Outlookから云々はあまり意味がありません。おそらく大抵の場合、そのように$smtp_serverを設定するのは誤りです。 -- 2006-10-24 (火) 18:47:04
  • メール送信テストをこんな感じで作り、test6.phpにアクセスしてはいかがですか。
    それはそうと、あなたの環境は・・・レンタルサーバー ? 自宅サーバー ? Linux ? Windows -- hirokasa 2006-10-24 (火) 19:32:02
  • ご丁寧にご検討ありがとうございます。環境はwindowsXPpro+php5+pukiwiki1.4.7+apacheです。smtpサーバが必要なのかと思いsendmailまねーるを導入し、test6.phpにアクセスしてみたのですが。。。"sendmail_from" not set in php.ini or custom "From:" header missing というエラーが出てきてしまいます。ちなみにC:windowsフォルダのphp.iniのsendmail_fromにはxxxx@yahoo.co.jp(xxxxはログイン名)にしています。まずtest6.phpをクリアにしたいのですが、、、場違い質問かとは思いますが、ご助言いただければ幸いです。 -- pkwk初心者? 2006-10-25 (水) 14:43:05
    • 残念ながら私はWindows環境に詳しくありません。しかしsendmailまねーるはSMTPサーバーではないですよね。Windows用のSMTPサーバーをインストールし適切に設定を施す必要があると思います。 -- hirokasa 2006-10-25 (水) 15:35:15
  • Windowsでメール通知機能をしようするには結構改造が必要そう。メッセージ本文の改行コードを\r\nにしないといけなかったり、Subjectにマルチバイトとシングルバイトの混在が困難だったり。自分が調べたなかで一番役にたったサイトはhttp://jp.php.net/manual/ja/function.mb-send-mail.phpです。サーバーのOSによってコードを変えないといけない場合、どうしてるんだろう? -- agena? 2007-06-12 (火) 09:03:05
    • file.php::file_write()で作成される更新情報(メール本文)の改行コードが'\n'であったので、pkwk_mail_notify()に渡す前に'\r\n'に変換。
    • 同様にmail.php::pkwk_mail_notify()内のheader,footer作成ロジック中の'\n'を'\r\n'に修正。
    • mail.php::pkwk_mail_notify()の$subjectにマルチバイト、シングルバイトが混在しているとエラーになるので関数下部を以下のように改造。
      ini_set('SMTP', $smtp_server);
      $subject = mb_convert_encoding($subject, "ISO-2022-JP","AUTO");
      $subject = mb_encode_mimeheader($subject);
      mb_language(LANG);
      //if ($_headers == '') {
          return mail($_to, $subject, $message);
      //} else {
      //    return mb_send_mail($_to, $subject, $message, $_headers);
      //}
    • PHP初心者なんで間違っていたら指摘願います。 -- agena? 2007-06-12 (火) 12:33:41

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-01-28 (木) 00:05:24
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.228 sec.

OSDN