phpmailer_init
Спрацьовує після ініціалізації PHPMailer .
Функція PHPMailer{} для надсилання пошти через PHP функцію mail() . Цей хук дозволяє підключатися до об’єкта PHPMailer і змінити параметри його роботи.
Використання
add_action( 'phpmailer_init', 'wp_kama_phpmailer_init_action'); /** * Function for `phpmailer_init` action-hook. * * @param PHPMailer $phpmailer The PHPMailer instance (passed by reference). * * @return void */ function wp_kama_phpmailer_init_action( $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 або TLS, якщо не потрібно для вашого сервера //$phpmailer->From="[email protected]"; //$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 = '[email protected]'; $phpmailer->Password = '6AAAuuSSS2k'; $phpmailer->SMTPAuth = true; $phpmailer->SMTPSecure = 'ssl'; $phpmailer->Port = 465; $phpmailer->From = '[email protected]'; $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 = '[email protected]'; // Логін до office365, вказати свій $phpmailer->Password = 'pass12345'; // Пароль у office365, вказати свій $phpmailer->SMTPSecure = 'tls'; // Вказуємо, що це SMTP у режимі tls $phpmailer->From = '[email protected]'; // Від кого вказати свій email $phpmailer->FromName = 'Мій супер сайт'; // Назва сайту, вказати своє }
список змін
З версії 2.2.0 | Введено. |
Де викликається хук
phpmailer_init
Де використовується хук у WordPress
wp-includes/ms-default-filters.php 108
add_action( 'phpmailer_init', 'fix_phpmailer_messageid');