8

ばかげた質問かもしれませんが、phpメール機能が機能しない理由がわかりません。debiansqueezeにnginxサーバーがあり、最近移動しました。単純なメール実行を試みましたが、falseが返されます。

if(mail('test@email.com', 'test-subject', 'test-text-blablabla'))
   echo 'ok';
else
   echo 'bad';

私はそれで何ができますか?

ありがとう。

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

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
4

1 に答える 1

24

さて、私はそれを作りました。nginxサーバーでdebiansqueezeを作成した方法:(rootユーザーから実行するすべてのコマンド)

まず、sendmailをインストールする必要があります

apt-get install sendmail

次に、私が思っていたよりも簡単なこのファイルを構成する必要があります

sendmailconfig 

さて、私が行う次のステップはphp.ini構成でした(私は優れた管理者ではなく、初心者なので、それが必要かどうかはわかりません)。

設定しました

sendmail_path= /usr/sbin/sendmail -t -i

さて、この瞬間から、理論的には電子メールを送信できますが、私の場合、504httpエラーゲートウェイのタイムアウトにつながりました。しかし、私がずっと後で見つけたように、電子メールはすでに電子メールボックスに来ました。だから、私のテストphpファイルは次のとおりです。

<?php 
   mail('myWorkingEmail@example.com', 'test', 'you done that');
   echo 'ok'; // I use this to check that script is end the execution 
?>

それはかなり明らかです。

次の問題は504エラーです。ログファイルに移動します

nano /var/log/mail.log

そしてここで私はこのエラーを見つけます(それは唯一のエラーではありませんが、それは504エラーの原因です):

sm-msp-queue[***]: My unqualified host name (myhostname) unknown; sleeping for retry

次に、この問題を解決する方法を見つけるには、http: //forums.fedoraforum.org/archive/index.php/t-85365.htmlそのページの最後のコメントを参照してください。

または私がこれを作った別の言葉:

nano /etc/hosts

そのファイルで、ホストの順序を変更します

127.0.0.1 my_ip localhost myhostname 

保存、完了。テストphpファイルを開きます。504エラーはありません。メールはメール機能で言及したメールの収入です。私が言うように、私は初心者です、そしてそれはあなたのために働かないかもしれません、しかしそれはとにかく私のために働きます。もちろん、これは最終的な構成ではありません。お役に立てば幸いです。

于 2013-02-15T00:40:52.323 に答える