我应该使用wp_mail还是php的mail?

时间:2017-06-26 作者:eskimopest

我在WordPress插件中制作了一个电子邮件系统,用于发送带有以下代码的电子邮件:

include(PLUGIN_DIR.\'config/class_phpmailer.php\');

$email = new PHPMailer();

$email->From      = get_option(\'admin_email\');
$email->FromName  = \'my name\';
$email->Subject   = $subject;
$email->Body      = $body;

foreach($emails as $mail) {
    if(is_email($mail)) {
        $email->addAddress($mail);
    }
}
if($name) {
    $att = PLUGIN_DIR.\'uploads/\'.date(\'Ymd\').\'_\'.$name;
    $email->AddAttachment($att);
}

// check if email is sent or not
if(!$email->Send()) {
    echo "Message was not sent <br />PHPMailer Error: " . $email->ErrorInfo;
}
else {
    echo "Message has been sent";
    $_POST = array();
}
这很有效。在线测试并发送给所有测试过的电子邮件。

我可以这样做吗?我的意思是,phpmailer类不是WP的原生类。这是错的吗?最好使用原生WP phpmailer吗?如果是,我该怎么做?

提前谢谢。

1 个回复
SO网友:Johansson

WordPress提供了自己的邮件系统。我建议您使用它而不是PHP的原生邮件。

wp_mail 接受五个参数:

wp_mail( $to, $subject, $message, $headers, $attachments );
因此,您的代码可以这样编写:

// Set the headers
$headers[] = \'From: \' . get_option(\'admin_email\');
// Add the addresses to an array
foreach($emails as $mail) {
    if(is_email($mail)) {
        $to[] = $mail;
    }
}
// Add the attachment
if($name) {
    $att[] = PLUGIN_DIR.\'uploads/\'.date(\'Ymd\').\'_\'.$name;
}
// Send the emails
$results = wp_mail( $to, $subject, $body, $headers, $att );
// Output the results
echo $results;
简单而简短。

结束

相关推荐

我打破了我的分页,所有页面上的帖子都一样(index.php)

我的索引上有两个循环。php页面中,第一个循环仅返回两条特色内容区域的粘性帖子。第二个自定义循环获取其他帖子,但不包括粘性帖子,这就是循环; <?php $the_query = new WP_Query( array( \'post__not_in\' => get_option( \'sticky_posts\' ), ) ); if ( $the_query->have_posts() ) : while ( $th