WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Авторские Темы для WordPress

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

Срабатывает после инициализации 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-соединения

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() );
}

#2 Пример настройки 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 );
}

#3 Пример настройки SMTP сервера для office 365

Чтобы воспользоваться данным кодом, нужно быть зарегистрированным в office365.

add_action( 'phpmailer_init', 'smtp_enable_for_office365' );

function smtp_enable_for_office365( $phpmailer ) {
	$phpmailer->isSMTP();                                   // Указываем, что это SMTP
	$phpmailer->SMTPAuth   = true;                          // Указываем, что это SMTP с авторизацией
	$phpmailer->Host       = 'smtp.office365.com';          // URL, изменять по необходимости
	$phpmailer->Port       = '587';                         // Порт, изменять по необходимости
	$phpmailer->Username   = 'login-office365@mail.com';    // Логин в office365, указать свой
	$phpmailer->Password   = 'pass12345';                   // Пароль в office365, указать свой
	$phpmailer->SMTPSecure = 'tls';                         // Указываем, что это SMTP в режиме tls
	$phpmailer->From       = 'mail@site.com';               // От кого, указать свой email
	$phpmailer->FromName   = 'Мой супер сайт';              // Название сайта, указать своё
}

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

С версии 2.2.0 Введена.

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

wp_mail()
phpmailer_init
wp-includes/pluggable.php 527
do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );

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

wp-includes/ms-default-filters.php 103
add_action( 'phpmailer_init', 'fix_phpmailer_messageid' );
Комментариев нет
    Войти