2016-11-13 8 views
0

重複した問題としてマークしないでください。私は推奨されたステップ(エラーログのチェック、構文のチェック、ヘッダー情報..など)を試して、MODが私に指摘したすべての手順がうまくいかない問題を解決しました。私はPERMISSIONの問題を受けています。理由を理解できないようです。私が受け取るエラーは次のとおりです。CentOS 6.4およびNginxサーバーでPHPを使用した電子メールを送信

"11月13日14:19:08 centos64 sendmail [6611]:uADJJ80J006611:SYSERR(nginx):queueup:キューファイルを作成できません./qfuADJJ80J006611、euid = 498、fd = -1、 FP = 0x0の:拒否された権限の〜」

オリジナルメッセージ

はnginxのCentOSの6.4サーバー上でPHPを使用して電子メールを送信するといくつかの助けをしたいと思います。私はこれを初めて知っているので、現在の設定が正しいかどうかを最初に確認し、設定ファイルを微調整する前に正確な問題が何かを診断したいと思っています。

目標:私は私のSQLデータベースの電子メールアラートのすべてのユーザーなどを送信できるようにしたいと思います..だから私は大規模なユーザーベースを持っている場合、最終的に、私は電子メールの多くを送信することができ..

私が見る私のphp.iniファイルで

..

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

そして、私は(yumの接尾辞をインストール-y接尾辞がインストールされていることを確認するためのコマンド

/etc/init.d/postfix status 

を使用し、最新の状態もあるしている、またはそれが何であれ)

私はこの役に立つスレッド(http://www.webhostingtalk.com/showthread.php?t=1238442)を見ていて、このガイド(http://www.server-world.info/en/note?os=CentOS_6&p=mail)にも従っていると思っていました。

次のコードを使用してメールを送信しようとしましたが、私のサーバーのemail.phpページにアクセスしてテストメールを受け取れませんでした。テスト電子メールがgmailの電子メールアドレスとの間で送信されるように試みられました。

<?php $to  = '[email protected]'; 
$subject = 'Testing'; 
$message = 'Hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 

いつものように、すべてのヘルプは高く評価されます。ありがとう!

SOLUTION:

  1. 私は

    'sudoをsetsebool -P httpd_can_sendmail 1' 、その後
    'sudoをsetsebool -P httpd_can_network_connect 1'

コマンドを使用しましたそして、メッセージはクライアントのフォルダにはない私は/ var/log/maillogを見て、こう言ったメッセージを見た。 'centos64 postfix/smtp [22..7]:gmail-smtp-in.l.google.comに接続する[。 ...]:25:ネットワークにアクセスできない 'というエラーメッセージが表示され、cyrus plainのインストールを行う必要があることを読んでください。 2. cyrus-sasl-plainをインストールします。

そこには同じボートがあります。

答えて

0

私はいくつかの簡単なオプションを提供していますが、これはおそらくすべての可能な状況をカバーしています。あなたは

を以下ました何

次られた道の古い答えを読む - PHPライブラリ

これは一例でphpmailerのののGithubレポであると主催PHP mail function not working on Centos server

自己を - https://github.com/PHPMailer/PHPMailer自己ホスト電子メールの第2の選択肢http://swiftmailer.orgはよく知られています。基本ガイドに従って、このスニペットを使用してください:

<?php 
require_once 'swift/lib/swift_required.php'; 

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
    ->setUsername('GMAIL_USERNAME') 
    ->setPassword('GMAIL_PASSWORD'); 

$mailer = Swift_Mailer::newInstance($transport); 

$message = Swift_Message::newInstance('Example Subject') 
    ->setFrom(array('[email protected]' => 'Example')) 
    ->setTo(array('[email protected]')) 
    ->setBody('This is an Example Mail.'); 

$result = $mailer->send($message); 
?> 

他の方法では、Pear Mailを使用しています。

トランザクションメールサービス

代わりにセルフホスティングメールサーバの、あなたは(私たちは、セキュリティを高めるためにメールポートを閉じることができます)HTTPを介して電子メールを送信するためにhttps://sendgrid.com/pricing/でSendGridのようなサービスを利用することができます。そのようなサービスがたくさんあります。彼らはちょうどswiftmailer.orgのようなものです。あなたはPHPライブラリとPHPスニペットが必要ですが、あなたのサーバーではなくメールをホストしています - https://github.com/sendgrid/sendgrid-php

+0

Abhishek、あなたのポストに感謝します。ですから、理想的には、電子メール(ある種のgui/UIで電子メールをチェックし、サーバーから電子メールを送信する)をチェックできるようにしたいのですが、PHPコードからプログラムで電子メールを送信したいと思います。あなたが言っているのは、PHPコードから電子メールを送信したい場合、sendmailまたはPHPMailerを使用してこれを実現するということです。しかし、私は電子メールなどを表示する電子メールのUIを持っている場合は、私は別のものと行く必要がありますか?もしそうなら、何?おかげ – Retro

+0

私はあなたのアドバイスに従って、あなたは上記のリンク先の記事から以下でした:* sendmailのをインストールし、次のコマンドを実行した後 : [ルート@ sendmailの〜]#yumをsendmailのインストール* [ルートsendmailのメール@]#をyum install dovecot [root @ sendmailメール]#cd/etc/mail/ [root @ sendmailメール]#viローカルホスト名 #あなたのマシンのすべてのエイリアスをここに含めます。 example.com [ルートsendmailのメール@]#viの プロトコル/etc/dovecot.conf =のIMAP、POP3 //コメント解除 [sendmailのメール@ルート]#m4のsendmail.mc> [sendmailのメール@ルート] sendmail.cf #make – Retro

+0

[root @ sendmailメール]#/etc/init.d/sendmail start [root @ sendmailメール]#/etc/init.d/saslauthd start [root @ sendmailメール]#/ etc私は私が見て、ということでした後 上 [ルートsendmailのメール@]#chkconfigのsendmailの の[ルートsendmailのメール@]#chkconfigをdovecotの の[ルートsendmailのメール@]#件のchkconfig saslauthdを起動/init.d/dovecot/var/log/maillogと私はこのエラーが表示されます: – Retro

関連する問題