Bagaimana untuk memilih akaun SMTP dalam PHPMailer berdasarkan kriteria tertentu?
P粉315680565
P粉315680565 2024-02-04 10:43:11
0
1
631

Dalam WordPress v6.0 saya, saya mengkonfigurasikan penghantaran e-mel SMTP melalui $phpmailer (no-reply@example.com) dan ia berfungsi dengan baik.

Saya mahu menggunakan akaun e-mel SMTP lain (contact@example.com) untuk semua komunikasi borang hubungan tersuai.

Hantar e-mel borang hubungan menggunakan wp_mail() seperti ini:

wp_mail($form_to, $form_subject, $form_body, implode("\r\n", $form_headers));

Cara mengenal pasti di atas wp_mail 并使用特定的 SMTP 帐户?下面是我的代码,没有真正的 if syarat untuk diperiksa:

// MAILER
add_action('phpmailer_init', 'send_smtp_email', 10, 1);

function send_smtp_email($phpmailer) {

    $phpmailer->isSMTP();
    $phpmailer->isHTML(true);

    if (wp_mail == "contact_form") { // not a real condition, this is what I want to achieve
        $phpmailer->Host = 'smtp.example.com';
        $phpmailer->SMTPAuth = 'true';
        $phpmailer->Port = 465;
        $phpmailer->Username = 'contact@example.com';
        $phpmailer->Password = 'password1';
        $phpmailer->SMTPSecure = 'ssl';
        $phpmailer->From = 'contact@example.com';
        $phpmailer->FromName = 'Site Contact Form';
    } else {
        $phpmailer->Host = 'smtp.example.com';
        $phpmailer->SMTPAuth = 'true';
        $phpmailer->Port = 465;
        $phpmailer->Username = 'no-reply@example.com';
        $phpmailer->Password = 'password2';
        $phpmailer->SMTPSecure = 'ssl';
        $phpmailer->From = 'no-reply@example.com';
        $phpmailer->FromName = 'Site Mail';
    }
}

P粉315680565
P粉315680565

membalas semua(1)
P粉135799949

Beginilah cara saya menyelesaikan masalah ini.

Sertakan pengepala tersuai dalam e-mel borang ulasan anda: 评论:评论表单.

Gunakan penapis wp_mail dan semak sama ada e-mel yang dihantar oleh borang komen adalah seperti berikut:

add_filter('wp_mail', 'set_smtp_email_accounts');

function set_smtp_email_accounts($mail) {

    // Comment form mails custom header
    $header = $mail['headers'];
    $header_text = 'Comments: Comment Form';
    $header_check = in_array($header_text, $header);

    //if comment form mails 
    if ($header_check) {
        add_action('phpmailer_init', 'send_smtp_email_comments', 10, 1); // if comments form mail
    } else {
        add_action('phpmailer_init', 'send_smtp_email', 10, 1); 
    }

    return $mail;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!