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');