WordPressサイトを運営していると、ユーザーへの通知やパスワードリセットなどのメール送信機能が欠かせません。しかし、プラグインのContact Form 7で送信したメールがGmailに届かない問題に直面したことはありませんか?WordPressの標準メール機能では不十分だったため、メール送信がスムーズに行かず、困った経験がある方も多いでしょう。
そこで、本記事ではPostfixを使用してWordPressのメール送信機能を改善する方法を詳しく説明します。特に、無料で設定できる方法に焦点を当てています。市販の「WP Mail SMTP」プラグインなどの有料オプションもありますが、できるだけ費用をかけずに解決したい方のために、今回はCentOS 9環境でのPostfixとSMTP設定を中心に解説します。
この方法を採用することで、ユーザーへの通知やパスワードリセットメールが確実に届くようになり、WordPressサイトの運営がスムーズになります。ぜひ、参考にしてください。
Step 1: Postfixのインストールと設定
まず、Postfixをインストールし、設定を行います。
1.1 Postfixのインストール
以下のコマンドを実行して、Postfixをインストールします。
sudo dnf install postfix
1.2 Postfixの設定
Postfixの設定ファイルを編集します。
sudo vi /etc/postfix/main.cf
次に、以下の内容を設定ファイルに追加または編集します。
# Basic configurations
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost = [mail.yourdomain.com]:587
# SMTP settings
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
1.3 SASLパスワードの設定
認証情報を設定します。
sudo vi /etc/postfix/sasl_passwd
以下の行を追加します。
[mail.yourdomain.com]:587 your-email@yourdomain.com:your-email-password
設定を保存したら、パーミッションを変更してデータベースファイルを作成します。
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo rm /etc/postfix/sasl_passwd
1.4 Postfixの再起動
設定を反映するためにPostfixを再起動します。
sudo systemctl restart postfix
sudo systemctl enable postfix
Step 2: WordPressの設定
次に、WordPressのwp-config.php
ファイルを編集してSMTP設定を行います。
2.1 wp-config.phpの編集
wp-config.php
ファイルを編集します。
sudo vi /var/www/wordpress/wp-config.php
以下の設定を追加します。
// SMTP設定
define('WP_MAIL_SMTP_HOST', 'mail.yourdomain.com');
define('WP_MAIL_SMTP_PORT', 587);
define('WP_MAIL_SMTP_USER', 'your-email@yourdomain.com');
define('WP_MAIL_SMTP_PASS', 'your-email-password');
define('WP_MAIL_SMTP_AUTH', true);
define('WP_MAIL_SMTP_SECURE', 'tls');
// メール送信元の設定
define('WP_MAIL_FROM', 'your-email@yourdomain.com');
define('WP_MAIL_FROM_NAME', 'Your Name or Company');
Step 3: 設定の確認とテスト
すべての設定が完了したら、テストメールを送信して動作確認を行います。
3.1 テストメールの送信
簡単なPHPスクリプトを作成して、メール送信をテストします。
<?php
$to = 'test@example.com';
$subject = 'Test Email';
$message = 'This is a test email.';
$headers = 'From: your-email@yourdomain.com' . "\r\n" .
'Reply-To: your-email@yourdomain.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if (mail($to, $subject, $message, $headers)) {
echo 'Email sent successfully.';
} else {
echo 'Failed to send email.';
}
?>
このスクリプトをサーバー上で実行し、メールが正しく送信されることを確認します。
まとめ
本記事では、PostfixとWordPressを連携させてメール送信機能を設定する方法を詳しく解説しました。これにより、WordPressサイトからのメール送信がスムーズに行えるようになります。何か問題が発生した場合は、再度設定を確認し、ログファイルをチェックすることで解決策を見つけることができます。
この記事を参考にして、ぜひWordPressサイトのメール送信機能を強化してください。
コメントを残す