2012-11-02 11 views
7

私はこれと私のためにどこでも検索しました本当にこれを解決したいと思います。過去には、私はちょうどPHP用のSendGridとSwiftMailerのようなメーリングプラグインのようなSMTPサービスを使用して終了します。しかし、私はPHPを使いたいです。 PHP-FPMでPHP Mail()関数を使用するにはどうしたらいいですか? Nginxで?

基本的に私のセットアップ(私は、サーバーのセットアップに新しいですし、これは tutorial以下の私の個人的な設定です)

Nginx 
Rackspace Cloud 
PHP 5.3 PHP-FPM 
Ubuntu 11.04 

マイphpinfo()戻り、このメールのエントリについて:できる人

mail.log      no value 
mail.add_x_header   On 
mail.force_extra_parameters no value 

sendmail_from no value 
sendmail_path /usr/sbin/sendmail -t -i 

SMTP  localhost 
smtp_port 25 

Mail()が動作しない理由を教えてください - 私のスクリプトは他のすべてのサイトで動作しています。通常のメールコマンドです。ログを設定するか、サーバー上の一部のPHPポートを有効にする必要がありますか?

私のサンプルスクリプト

<? 
    # FORMS VARS 

    // $to = $customers_email; 
    // $to = $customers_email; 

    $to = $_GET["customerEmailFromForm"]; 

    $subject = "Thank you for contacting Real-Domain.com"; 
    $message = " 
    <html> 
    <head> 
    </head> 
    <body> 
    Thanks, your message was sent and our team will be in touch shortly. 
    <img src='http://cdn.com/emails/thank_you.jpg' /> 
    </body> 
    </html> 
    "; 
    $headers = "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
    $headers .= 'From: <[email protected]>' . "\r\n"; 

    // SEND MAIL 
    mail($to,$subject,$message,$headers); 

?> 

おかげ

答えて

12

あなたが設定する必要がsendmail_fromの値がないとして1 php.ini中:あなたはmailに呼ぶとき

sendmail_from = "[email protected]" 

またはヘッダーに:

mail($to, $subject, $message, 'From: [email protected]'); 

メールアドレスは、例えばRFC 2822に従ってください:

あなたが実際に作業の電子メールシステムをインストールして、それに失敗?

ない場合は、次のコマンドを使用して接尾辞をインストールすることができます。

sudo apt-get install postfix

のUbuntuでPHPを使用するためのpostfixの設定の詳細については、以下を参照してください:

https://serverfault.com/questions/119105/setup-ubuntu-server-to-send-mail

+0

例を使用して更新された回答を参照してください。 –

+0

これは実際のアドレスでなければなりませんか? – TheBlackBenzKid

+0

いいえ、回答を受け取ることを希望しない場合は、 –

9

場合nginxとPHP-FPM(Apacheなし)を使ったUbuntu 14.04の新規インストール時に、postfixもmailutilsもインストールされていないことが分かりました。

私が使用: sudo apt-get install postfix

を(推奨の答えのように)

sudo apt-get install mailutils

を私のサーバーに取り組んですべてを取得します。どちらも必要でした。 PHP.iniのエントリ(推奨されている回答に記載されているように)も役に立ちましたが、他のパッケージがなければ、違いはありませんでした。

+0

フィードバックと洞察をお寄せいただきありがとうございます – TheBlackBenzKid

+0

ようこそ。私がこれを設定した後、私のサーバーからのメールが私のプライマリ電子メールドメインに配信されていないことがわかりました(他のドメインに配信されています)。 postfixは(デフォルトで)メールをローカルに配送しようとします。このための修正プログラムは、 – TheDavidJohnson

+0

whoopsからドメイン名を削除することでした。 'は/ etc/postfixの/ main.cf' – TheDavidJohnson

関連する問題