web-dev-qa-db-ja.com

プラグインなしでpostfixを使うようにWordPressを設定できますか?

私はvagrantボックスでWordPressサイトを開発していて、電子メール通知をテストするためにpostfixをインストールしました。

このゲストOS(Ubuntu)レベルで、私はテストメールを終わらせることができます。

echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]

これはうまくいき、私はEメールを受け取ります。私が知っている限りでは、postfixはsendmailバイナリを使っているので、私はWordPressがうまく電子メールを送ることを期待します。

ただし、連絡フォームの通知が届いていません。 WordPressで送信しているEメールをチェック/デバッグする方法、または使用しているメール機能を検証する方法はありますか?

_アップデート_

それでちょっと掘り下げた後、私はwp_mail()がPHPMailerを使っていることを発見しました。このテストスクリプトを使用してwp_mail()関数をデバッグすると、PHPMailerが例外をスローしていることがわかります。

メール機能をインスタンス化できませんでした。

// Set $to as the email you want to send the test to
$to = "[email protected]";

// No need to make changes below this line

// Email subject and body text
$subject = 'wp_mail function test';
$message = 'This is a test of the wp_mail function: wp_mail is working';
$headers[] = 'From: Me Myself <[email protected]>';

// Load WP components, no themes
define('WP_USE_THEMES', false);
require('wp/wp-load.php');

// Call the wp_mail function, display message based on the result.
if( wp_mail( $to, $subject, $message, $headers ) ) {
    // the message was sent...
    echo 'The test message was sent. Check your email inbox.';
} else {
    // the message was not sent...
    echo 'The message was not sent!';
};
2
codecowboy

WordPressは wp_mail() 関数を使ってメールを送信します。それはそこにコーデックスの記事で言う:

この機能を動作させるには、php.iniファイルでSMTPおよびsmtp_port(デフォルト:25)の設定を行う必要があります。

また、あなたの連絡フォームがwp_mail()関数に必要なパラメータを送っていることを確認してください。必要なパラメータは上のリンクのページに含まれています。

1
Austin Curtis