私は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!';
};
WordPressは wp_mail() 関数を使ってメールを送信します。それはそこにコーデックスの記事で言う:
この機能を動作させるには、php.iniファイルでSMTPおよびsmtp_port(デフォルト:25)の設定を行う必要があります。
また、あなたの連絡フォームがwp_mail()関数に必要なパラメータを送っていることを確認してください。必要なパラメータは上のリンクのページに含まれています。