phpmailer_init хук-событие . WP 2.2.0

Click here to view original web page at wp-kama.ru

Срабатывает после инициализации PHPMailer{}.

Функция wp_mail() использует класс PHPMailer{} для отправки почты через PHP функцию mail(). Этот хук позволяет подключаться к объекту PHPMailer{} и изменить параметры его работы.

Использование

add_action( 'phpmailer_init', 'action_function_name_4637' );
function action_function_name_4637( $phpmailer ){
	// action...
}
$phpmailer(PHPMailer)
Экземпляр PHPMailer{} (передается по ссылке).

Примеры

#1 Пример настройки SMTP сервера от Yandex

// настройка SMTP
add_action( 'phpmailer_init', 'smtp_phpmailer_init' );
function smtp_phpmailer_init( $phpmailer ){

	$phpmailer->IsSMTP();

	$phpmailer->CharSet    = 'UTF-8';

	$phpmailer->Host       = 'smtp.yandex.ru';
	$phpmailer->Username   = 'no-reply@mailer.Megasite.com';
	$phpmailer->Password   = '6AAAuuSSS2k';
	$phpmailer->SMTPAuth   = true;
	$phpmailer->SMTPSecure = 'ssl';

	$phpmailer->Port       = 465;
	$phpmailer->From       = 'no-reply@mailer.Megasite.com';
	$phpmailer->FromName   = 'MY-Megasite';

	$phpmailer->isHTML( true );
}

#2 Общий пример установка своего SMTP-соединения

add_action( 'phpmailer_init', 'my_phpmailer_example' );
function my_phpmailer_example( $phpmailer ) {

	$phpmailer->isSMTP();     
	$phpmailer->Host = 'smtp.example.com';
	$phpmailer->SMTPAuth = true; // Force it to use Username and Password to authenticate
	$phpmailer->Port = 25;
	$phpmailer->Username = 'yourusername';
	$phpmailer->Password = 'yourpassword';

	// Additional settings…
	//$phpmailer->SMTPSecure = "tls"; // Choose SSL or TLS, if necessary for your server
	//$phpmailer->From = "you@yourdomail.com";
	//$phpmailer->FromName = "Your Name";
}

Логирование ошибок:

add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);
function log_mailer_errors( $wp_error ){

	// выведем ошибку в .log файл
	error_log( $wp_error->get_error_message() );
}

Список изменений

Где вызывается хук

Где используется хук в ядре WordPress