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