PHPのSafeModeでmb_send_mail()

PHPをSafeModeの検証してて気づいた事、SafeMode=Onだとmb_send_mailの第5パラメータが使用できないらしい(知らんかった(笑))、「-f$mailfrom」とかしてエラーメールの返り先の「Return-Path:」「Envelope-From:」とか設定する事が多いと思うのですが、使えないとなるとこまったなー

Warning: mb_send_mail() [function.mb-send-mail]: SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE. in

ってmb_send_mailでエラーがでます。
mail()だけダメでmb_send_mail()なら大丈夫って事も書いてあるサイトもあるけど、今試してるCentOS5のPHP-5.1.6だとmail()もmb_send_mail()も両方ダメですね。
と思って、CentOS4のphp-4.3.9で試したらmail()はダメだけど、mb_send_mail()はOKでしたorz

セーフモード(PHPマニュアル)

mail()
セーフモードでは、5番目のパラメータが無効となります。(注意: PHP 4.2.3以降のみ適用)
mb_send_mail()
bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]] )

PHPのSafeModeでmb_send_mail()」への3件のフィードバック

  1. いろいろ試した結果、セーフモード環境で、「Return-Path:」「Envelope-From:」を使いたい場合はPear::Mailでsmtpモード使って送るのが解決策になりそうです。

  2. コメントの「Pear::Mailでsmtpモード使って送る」ってどういうことでしょうか。
    素人にも判るように教えて頂けませんでしょうか。。。

  3. siva_4850さま
    コメントありがとうございます。
    「PEAR::Mailでsmtpモード使って送る」の件ですが、
    PEARのライブラリにMailモジュールがありますので、
    (CentOSであればphp-pearをインストールしてあれば使えたような)

    で、そのMailにメール送信のバックエンドを何にするかという設定
    があるので、「mail」「sendmail」「smtp」この中の「smtp」を選択する
    おとで、PHPからTCP通信でメールサーバに送れますので、
    SafeModeの影響はないかと。

    サンプルなどは、「PEAR::Mail」で検索してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA