设置HTML头时未发送邮件

时间:2013-04-30 作者:Rameez SOOMRO

$subject = get_the_title(); 
$sender_name = get_bloginfo(\'name\');
$blog_url = get_bloginfo(\'url\');

$to      = \'[email protected]\';
$subject = \'the subject\';
$message = \'hello\';
$headers = \'MIME-Version: 1.0\' . "\\r\\n";
$headers .= \'Content-type: text/html; charset=iso-8859-1\' . "\\r\\n";
$headers .= \'From: \'.$sender_name.\' <no-reply@\'.$blog_url.\'>\' . "\\r\\n";

$headersssssssssssss = \'From: [email protected]\' . "\\r\\n" .
    \'Reply-To: [email protected]\' . "\\r\\n" .
    \'Content-type: text/html; charset=iso-8859-1\' . "\\r\\n" .
    \'X-Mailer: PHP/\' . phpversion();
当我使用$headersssssssssssss 变量作为mail() 功能,它工作并发送电子邮件<但是当我使用$headers 作为参数,它不会。

注意:我已经尝试使用wp_mail 相反,结果是一样的。

if( mail($to, $subject, $message, $headersssssssssssss) )
{
    echo \'<script>alert("mail sent success!");</script>\';
} else {
    echo \'<script>alert("mail where not sent");</script>\';
} 

exit;

1 个回复
SO网友:kaiser

这是wp_mail() WordPress中的函数。标头必须添加为数组,且不带尾随符\\n\\r 或类似。

示例

wp_mail(
    \'[email protected]\',
    \'Hello World!\',
    \'Just saying...\',
    array(
        \'MIME-Version: 1.0\',
        \'Content-type: text/html; charset=iso-8859-1\',
        sprintf(
            \'From: %s <no-reply@%s>\',
            get_bloginfo(\'name\'),
            site_url()
        ),
        sprintf( \'X-Mailer: PHP/%s\', phpversion() ),
     )
);
要更改内容类型,还可以使用过滤器:

<?php
/* Plugin Name: WP Mail Content Type text/html */
function wpse_97789_mail_contenttype( $content_type )
{
    remove_filter( current_filter(), __FUNCTION__ );
    return \'text/html\';
}

// Then, whereever you need it, just add the filter before calling the function
// It removes itself after firing once
add_filter( \'wp_mail_content_type\', \'wpse_97789_mail_contenttype\' );
wp_mail(
    \'[email protected]\',
    \'Hello World!\',
    \'Just saying...\',
    array(
        \'MIME-Version: 1.0\',
        sprintf(
            \'From: %s <no-reply@%s>\',
            get_bloginfo(\'name\'),
            site_url()
        ),
        sprintf( \'X-Mailer: PHP/%s\', phpversion() ),
    )
);

结束

相关推荐

如何在WordPress Post文件中编辑php代码?

我有一个wordpress页面。在wordpress页面中,用户可以访问以下窗口Publish 他们在网页上的帖子。如果用户在我上面用红色标记的三个字段中的任何一个字段中输入URL,我的php代码将查找这些URL并确定它们是否为垃圾邮件。因此,我想把我的php代码放在Publish 按钮,这样我可以在php代码运行后禁止或允许发布,并确定这些URL是否为垃圾邮件。你能告诉我为了放入php代码,我应该编辑的wordpress文件的名称吗。我是wordpress的新手,对他们的文件结构不太了解。