3

Windows とは異なり、Linux で "mailtodisk" PHP オプションを使用するのに問題があります。存在すらしていないようです。

「php.ini」のメールセクションには、それへの参照はありません。

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=localhost
; http://php.net/smtp-port
smtp_port=25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header=On

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log ="/opt/lampp/logs/php_mail_log"

[SQL]

次のような多くのクラッシュがあるため、デフォルトのメールフォームをテストするために、ローカルホストのホームページに「メール」リンクが表示されません。

Notice: Undefined variable: TEXT in /opt/lampp/htdocs/xampp/start.php on line 12

Obs: localhost ホームページでこのエラーが発生しているにもかかわらず、問題なくプロジェクトを実行しています。

実際、メニューに「メール」リンクがないようです (ソースコードを検索しました)。

この情報が何らかの形で役立つかどうかはわかりませんが、ファイル「sendmail.php」は私のシステムに存在しないファイルを使用しています: /usr/sbin/sendmail.

XAMPP の現在のバージョンは 1.8.3 で、最近更新されました。

Linux用のXAMPPで「mailtodisk」を使用することはできますか? はいの場合、私の状況で何をする必要がありますか?

4

2 に答える 2

9

存在しませんが、これは私の mailtodisk スクリプトです:

/opt/lampp/mailtodisk/mailtodisk:

#!/opt/lampp/bin/php
<?php
$input = file_get_contents('php://stdin');
$filename = '/opt/lampp/mailoutput/mail-' . gmdate('Ymd-Hi-s') . '.txt';
$retry = 0;
while(is_file($filename))
{
    $filename = '/opt/lampp/mailoutput/mail-' . gmdate('Ymd-Hi-s') . '-' . ++$retry . '.txt';
}
file_put_contents($filename, $input);

XAMPP のインストールがフォルダー/opt/lamppにない可能性があります。そうでない場合は、スクリプトを編集する必要があります (ただし、XAMPP フォルダーに存在する必要はありません)。

mailtodisk誰でもスクリプトを実行できること ( chmod 755 mailtodisk) と、誰でもmailoutputフォルダーに書き込めること ( )を確認してくださいchmod 777 mailoutput

次に、php.ini ファイル ( /opt/lampp/etc/php.ini) には以下が含まれている必要があります。

sendmail_path=/opt/lampp/mailtodisk/mailtodisk

php.ini ファイルを編集するたびに、Apache を再起動する必要があります。

電子メールを送信したくない場合に sendmail をインストールするのはやり過ぎです。

于 2014-04-13T20:52:08.450 に答える