Wordpress - 如何在加载页面时发送电子邮件通知?

时间:2012-09-25 09:39:00

标签: php wordpress email

我目前正在寻找一种通过WordPress网站发送电子邮件通知的方法。例如,当用户访问页面A时,将在后台发送电子邮件通知。

我在WordPress环境中没有太多Web开发经验,所以有人可以在这里给我一个指针吗?我应该从哪里开始?

感谢。

编辑:

我已尝试过mail()& wp_mail()函数,但它们似乎都不适合我。当我访问该页面时,没有发送任何电子邮件。我还检查了该页面的模板,这只是默认模板。也许我正在编辑错误的文件?

EDIT2:

我猜邮件功能可能尚未由托管服务提供商启用。

4 个答案:

答案 0 :(得分:4)

这是一段发送html电子邮件的非常基本的PHP代码。

<?php
if(is_page(123))
{

$fromName = 'Auto email notification system';

$subject = 'Confirmed';

/* Mail Address */
$toAddr = 'me@domain.com'; 
$bccAddr = 'bccperson@domain.com'; 
$fromAddr = 'no-reply@domain.com';
/* End Mail Address */


/* Mail Body */
$msg = '
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
my messages about confirmation...
</body>
</html>
';

$msg = wordwrap($msg, 70);
/* End Mail Body */


/* Mail Headers Setup */
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: ".$fromName." <".$fromAddr.">";
$headers[] = "Bcc: <".$bccAddr.">";
/* End Mail Headers Setup */


mail($toAddr, $subject, $msg, implode("\r\n", $headers));

}
?>

我把上面的代码放在header.php文件的底部,它对我来说很有用。

谢谢大家提出的所有建议和帮助。

答案 1 :(得分:1)

您可能希望PHP的mail功能发送电子邮件和WordPress is_page()之类的内容,以便在您要发送电子邮件时识别页面,所以

<?php 
if(is_page()) :
  mail('email@address.com','My Subject','My Message');
endif;
?>

另外,请查看底部is_page的“相关”部分 - 您可能希望使用其他一些确定要发送电子邮件的页面。

答案 2 :(得分:1)

嘿@woodykiddy为页面创建模板并将此代码放在页面中。 每次加载页面时,此条件都返回true。

// Example using the array form of $headers
// assumes $to, $subject, $message have already been defined earlier...

$headers[] = 'From: Me Myself <me@example.net>';
$headers[] = 'Cc: Aravind B Codex <abc@wordpress.org>';
$headers[] = 'Cc: iluvwp@wordpress.org'; // note you can just use a simple email address

<?php 
if(is_page()) :
    wp_mail( $to, $subject, $message, $headers );
endif;
?>

http://codex.wordpress.org/Function_Reference/wp_mail

希望这会对你有所帮助。

答案 3 :(得分:1)

创建模板很容易。创建一个新页面my-template.php将此代码放在顶部。

<?php
    /*
    Template Name: My New Template
    */
    ?>

但这取决于你的主题。我已经为你编辑过了。它将为您提供创建模板的想法。

<?php
    /*
    Template Name: My New Template
    */

    get_header();

    $headers[] = 'From: Me Myself <me@example.net>';
    $headers[] = 'Cc: Aravind B Codex <abc@wordpress.org>';
    $headers[] = 'Cc: iluvwp@wordpress.org'; // note you can just use a simple email address
?>

<?php 
if(is_page()) :
    wp_mail( $to, $subject, $message, $headers );
endif;
?>


<div id="container">
    <div id="content" role="main">

    <?php
    /* Run the loop to output the page.
     * If you want to overload this in a child theme then include a file
     * called loop-page.php and that will be used instead.
     */
    get_template_part( 'loop', 'page' );
    ?>

    </div><!-- #content -->

</div><!-- #container -->

将电子邮件代码放入其中。将其保存在模板目录中。

转到管理面板并添加/编辑页面。在页面的右侧有一个选项(模板)。 您的模板将在下拉列表中显示。 选择模板并保存页面即可。