2017-08-24 1 views
2

私のウェブホストが無効にされましたproc_openはPHPで機能し、電子メールをもう送信できません。セキュリティ上の理由からSwift Mailerを使用してLaravelで電子メールを送信できません - プロバイダによって無効にされたproc_open()関数

私はlaravelデフォルトではSwiftMailerを使用するために無効にされている

は、proc_open():

私はこのエラーログを取得します。 どうすればいいですか?

+0

どのオペレーティングシステムを使用していますか? – lewis4u

+0

あなたはどのメールドライバを使用していますか、あなたのメール設定は何ですか? –

+0

MAIL_DRIVER = sendmail MAIL_HOST = localhost MAIL_PORT = 25 – robcaa

答えて

1

proc_openは、Swiftmailerがsendmailのような外部実行可能ファイルを使用している場合にのみ必要です。ドキュメントに記載されているSMTP、Mailgun、またはone of the other driversのような別のトランスポートを引き続き使用できるはずです。

テストとして、SMTPドライバを使用し、自分のSMTPメールの詳細(メールクライアントからメールを送信するために使用するもの)を入力してみてください。あなたの.envに次のように試してみてください。

MAIL_DRIVER=smtp 
MAIL_HOST=your.smtp.host // (copy from your mail client) 
MAIL_PORT=your.smtp.port // (copy from your mail client) 
MAIL_USERNAME=your.smtp.username // (copy from your mail client) 
MAIL_PASSWORD=your.smtp.password // (copy from your mail client) 

これはおそらく、恒久的な解決策には適していませんが、あなたはは、proc_openせずにメールを送信できることをテストできるようになります。私はMailgunの無料の層を使用し、それをお勧めすることができます。

2

確認と変更はphp.iniにこの行があります。

disable_functions = exec,system,dl,passthru,chown,shell_exec,popen,proc_open 

セーフモードで無効にした機能のリストhereを確認してください。

UPDATE
あなたは、命令の下に、次のことがわかったら: php.iniファイル

OR

でdisable_functionsからは、proc_openを削除する上記の文字列を削除するには、あなたのホスティングプロバイダを依頼あなたがそれを行うためのアクセス権または権利を持っていない場合。

+0

私はphpinfo()と呼ばれ、proc_open()を検索しました。ここに結果があります: disable_functions:\tシステム、パススルー、仮想マシン、仮想マシン、http_connect、接続、リンク、popen、...、openlog、shell_exec、exec、** proc_open ** – robcaa

+0

@robcaa: *私の答えからの更新* ... –

+0

私はホストに尋ねた。私はこの答えを受け取った:**この機能は有効になっていない、我々はセキュリティ上の理由からそれを有効にしない** – robcaa

関連する問題