【问题标题】:Form for sending mail not sending发送邮件不发送表格
【发布时间】:2011-05-12 16:17:26
【问题描述】:

我有一个“告诉朋友”弹出式电子邮件表单,允许用户使用他们输入的电子邮件地址共享我的页面。它弹出很好,但我无法获取发送电子邮件的表单。

html:

<div id="tellfriend">
      <a href="#close">Close</a>

      <form id='tellafriend_form' method="post" action="#sendMessage" name="tellafriend_form">

        <label for="name">Your Name:</label>
        <input type="text" id="name" name="name" />

        <label for="to">Friend's email:</label> 
        <input type="text" id="to" name="to" /> 

        <label for="subject">Subject:</label>
        <input type="text" id="subject" name="subject" /> 

        <label for="message">Message:</label> 
        <textarea id="message" name="message"></textarea>
        <input type="submit" name="submit" value="Submit">

      </form>

</div><!-- #tellfriend -->

处理“弹出”的javascript:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> 
<script>
$(function() {
    $('#tellfriend').hide();
    $('#sendMessage').click(function(e) {
        $("#tellfriend").fadeToggle('fast');
    });

});
</script>

应该发送邮件的php:

<?
if (isset($_POST['Submit'])) {
// This will check to see if the form has been submitted
$senders_name = $_POST['name'];
// The person who is submitting the form
$recipient_friend = $_POST['to'];
// The forms recipient
$subject = $_POST['subject'];
// The subject line
$message = $_POST['message'];
// The message being sent
mail($recipient_friend, "From $senders_name", $subject, $message);

if (isset($_POST['your_email'])) {
echo "<br>Your friend has been contacted <br><br>Thank you $senders_name";
}}
?>

免责声明:PHP新手,希望学习。谢谢!

【问题讨论】:

  • 是否调用了PHP文件(查看访问日志)
  • 了解如何设置标题以发送电子邮件
  • @BugFinder 我尝试从外部调用 php 文件并将其加载到页面上。
  • @blackessej,很遗憾这没有回答我的问题。您上面的代码实际上是在调用 PHP(您可以从访问日志中得知)。
  • send mail form not sending mail 的可能重复项

标签: php javascript email sendmail


【解决方案1】:

邮件函数中参数的顺序不正确。见this

应该是

mail($recipient_friend, $subject, $message);

如果您想使用标题,请执行此操作

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";    
$headers .= 'To: '.$recipient_friend.' <'.$recipient_friend.'>' . "\r\n";    
$headers .= 'From: '.$sender.' <'.$senderEM.'>' . "\r\n";    

然后像这样调用邮件

mail($recipient_friend, $subject, $message, $headers);

【讨论】:

  • 成功。非常感谢,@boug。你只是缓解了一个巨大的头痛,我在这个过程中学到了很多东西。
【解决方案2】:

您的 PHP 代码中有一个错误:

if (isset($_POST['Submit'])) {

应该是:

if (isset($_POST['submit'])) {

带有小写的“s”。

确实,您提交按钮的名称是“提交”,但值是“提交”。 你最终可以这样做:

if (isset($_POST['submit']) &&  $_POST['submit'] == 'Submit') {

而且你的邮件参数不像 boug 所说的那样正确。

【讨论】:

    【解决方案3】:

    你有 2 个错误

    1. 第一:

      if (isset($_POST['submit']))
      // $_POST is case sensitive
      
    2. 秒:

      if (isset($_POST['your_email']))
      // you dont have an inout named 'your_email'
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多