Могу ли я настроить WordPress на использование postfix без плагина?
Я разрабатываю сайт WordPress на бродячей коробке и установил postfix для тестирования уведомлений по электронной почте.
На этом уровне гостевой ОС (Ubuntu) я могу завершить тестовое электронное письмо:
echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]
Это работает, и я получаю электронное письмо. Насколько я знаю, postfix использует двоичный файл sendmail, поэтому я ожидаю, что WordPress успешно отправит электронные письма.
Однако мои уведомления из контактной формы не поступают. Есть ли способ проверить/отладить электронную почту отправка в WordPress или проверка, какую почтовую функцию он использует?
ОБНОВЛЕНИЕ
Итак, немного покопавшись, я обнаружил, что 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!';
};
1 answers
WordPress использует функцию wp_mail() для отправки почты. В статье Кодекса там говорится, что:
Для работы этой функции в вашем файле php.ini необходимо установить параметры SMTP и smtp_port (по умолчанию: 25).
Также убедитесь, что ваша контактная форма отправляет необходимые параметры в функцию wp_mail(). Необходимые параметры указаны на странице по ссылке выше.