web-dev-qa-db-ja.com

連絡フォーム7:4.6への更新後にwp_mailが機能しない

wp_mail関数は、WordPressをバージョン 4.6 にアップデートした後は機能しません。

私のコードは:

$headers = 'From: ' . $this->from_name . ' <' . $this->from_email .'>' . "\r\n";
wp_mail( $service->getEmail(), $this->admin_daily_subject, $admin_daily_message, $headers );

それは更新の前に完全に機能しました。また、 Contact Form 7 ではメールの送信がうまくいかないことに気づきました。何か案は?前もって感謝します。

_ update _

解決策が見つからなかったので、wp_mailをmail関数に置き換え、いくつかのヘッダを追加しました。

$headers = 'From: ' . $this->from_name . ' <'.$this->from_email.'>' . "\r\n" .
                           'Reply-To: '.$this->from_email . "\r\n" .
                           'X-Mailer: PHP/' . phpversion() . "\r\n" .
                           "Content-Type: text/html; charset=UTF-8";
mail( $service->getEmail(), $this->admin_daily_subject, $admin_daily_message, $headers );

このアップデートではうまくいきます。 4.6でwp_mail()を使うことに関するwp codexの更新があるか、誰かが解決策を見つけるでしょう。

UPDATE 2

私がこの問題に直面しているのは私だけではないようです。

あなたのメッセージを送信しようとしてエラーがありました

4
IvnH

解決策はこちらで見つかりました - WordPress Coreを作る

352行目でwp-includes/pluggable.phpを変更しました。

$phpmailer->setFrom( $from_email, $from_name ); 

$phpmailer->setFrom( $from_email, $from_name, false ); 

そしてそれはうまくいきます! Marius L. J.(Clorith)に感謝します。

5
IvnH

WAMPであなたに?いずれにせよ、あなたのphpビルドに組み込まれているphp mail() 関数は、何らかの理由で利用できないようです(通常、WAMPや* smtpサーバーがない* nixビルドでは動作しません)。あなたの最善の策はおそらく電子メールを送るのにSMTPを使い始めることです。

あなたはそれのためにあなた自身のプラグインを転がすことができます、しかし私は個人的に WP Mail SMTP を使いたいです。あなたが送信する必要がある電子メールの量に応じてSMTPクレデンシャルまたは Mailgun のような何かのためにgmailアカウントを使うことができます。

もしあなたがあなた自身のプラグインを書きたいのであれば、phpmailer_initをフックしてグローバルな$phpmailer変数を以下のように修正したいでしょう。

$phpmailer->IsSMTP();
$phpmailer->Host = "smtp.example.com";
$phpmailer->Port = <SMTP PORT>;
$phpmailer->SMTPSecure = 'ssl';  //optional, can also be 'tls'
$phpmailer->SMTPAuth = true;
$phpmailer->Username = '<your smtp username>';
$phpmailer->Password = '<your smtp password>';
3
TheGentleman

私はWP-Mail-SMTPをインストールした。0bの引用符で[email protected]を作成した。 [email protected]を使用するようにWP-SMTPを設定しました。 - SSLオン - ローカルホストをあなたがホストしているサーバに変更します - SSL用のSMTPポートは465テスト済みのWP-Mail-SMTPは動作しました。

私はまだ連絡フォーム7を動作させることができませんでした、それから私はそのパズルの欠けている部分が[email protected]であるために[email protected]であるアドレスから連絡フォーム7を編集しなければならなかったということでした

また、 https://contactform7.com/faq/ を読んで役に立ち、cpanelのホスティングでトラック配信アプリを使用するようになりました。メールを送る。また、ユーザーはakismetを有効にしていましたがアクティブではなかったので、それをオフにしました。キャッシュクリアの頻度に関するいくつかの問題についても言及しています。

CPanelで正しいPHPバージョンが設定されているかどうかを確認する必要があります。

Wpインクルードでpluggable.phpを編集するという以前の投稿は良くない考えです。新しいコアアップデートが再びそれを壊すことになるので、そのような問題を修正するためにWordPressのコアを編集するべきではありません。

更新

機能していなかったフォームからキャプチャを削除しました。

要約
[要約]

Recaptchaのあるものが壊れています。


修正済み!

フォーム送信を破る要約に関するプラグインサポートフォーラムは、次のように付け加えました。

https://wordpress.org/plugins/contact-form-7-recaptcha/ /

私の失敗した努力のうちのどれかが他の誰かに苦労して実を結ぶ場合に備えて、私は修正するための私の全努力を文書化すると思いました。