在wordpress中发送电子邮件

时间:2010-06-17 12:00:32

标签: email wordpress post

我正试图在wordpress网站上使用PHP mail()发送电子邮件。 我创建了一个空页http://www.exam-vision.com/request-flip-up-instructions,该模板包含如下所示的php代码。当我发布数据时,isset($ _ REQUEST ['email'])为false,而我可以在firebug中正确发布数据。什么可能是错的?

感谢

<?php

if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
    //send email

    $email = $_REQUEST['email'] ;
    $subject = $_REQUEST['subject'] ;
    $message = $_REQUEST['message'] ;
    mail( "<someemail>", "Subject: $subject",
    $message, "From: $email" );
    echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
   echo "<form method='post' action='http://www.exam-vision.com/request-flip-up-instructions'>
   Email: <input name='email' type='text' /><br />
   Subject: <input name='subject' type='text' /><br />
   Message:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' />
</form>";
}
?>

3 个答案:

答案 0 :(得分:2)

而不是使用$ REQUEST,只需使用$ _POST,因为页面已发布给自己,并确保检查it's setempty是否wp_mail。而不是使用PHP的mail()函数使用WordPress'CformsII函数。

或者,您也可以选择使用插件来完成此操作。 Gravity Forms和{{3}}(高级插件)只是几个例子。我使用过CformsII,它非常广泛,并且功能丰富,可用于免费插件。

答案 1 :(得分:0)

两件事:要使用您当前的表单,您应该1)与您的主机核实是否需要使用smtp并进行身份验证而不是使用php邮件,2),清理您的输入:PHP Secure E-mail. < / p>

如果你想使用WP插件代替邮件 - 这比构建你自己的表单有许多优点 - 你可能还需要使用WP Mail SMTP « WordPress Plugins来使用smtp而不是php邮件,因为你的主机可能正在限制使用php邮件。

答案 2 :(得分:-1)

尝试更改

<input type="email" name="email" /> 

类似

<input type="email" name="my_theme_email" />

对所有字段执行相同操作听起来像发送表单数据时WordPress会保留一些名称。我遇到了同样的问题,我就这样解决了。之后使用POST方法,并可能创建一个do_action()来添加字段验证。并使用wp_mail发送电子邮件,$_POST['']