PHP邮件函数不返回消息


PHP mail function doesn't return the message

我似乎在我的代码中遇到了一个问题,我不确定是PHP邮件器引起的还是我(很可能是我),但让我把它说出来。

我有一个表单,输入的值需要发送到电子邮件。

<form method="post" action="index.php" />
                        <fieldset>
                            <input id="name" name="naam" type="text" value="" class="span4" placeholder="Naam" required/>
                            <input id="email" name="email" type="text" value="" class="span4" placeholder="Emailadres" required/>
                            <input id="telnr" name="telnr" type="text" value="" class="span4" placeholder="Telefoon nummer" optional/>
                            <textarea class="input-xlarge span12" id="message" name="bericht" rows="9" placeholder="Bericht" required></textarea>
                            <div class="actions">
                                <button name="submit" type="submit" class="btn btn-succes btn-large">Versturen</button>
                            </div>                          
                        </fieldset>
                    </form>

这实际上是将页面返回到自身并通过PHP块运行

                    <?php
                    if(isset($_POST['submit'])){
                        // defenitie variabellen
                        $name = $_POST["naam"];
                        $from = $_POST["email"];
                        $telnr = $_POST["telnr"];
                        if ($telnr = ''){
                            $telnr = "De gebruiker heeft geen telefoonnummer achtergelaten";    
                            }
                        echo $telnr;
                        $message = $_POST["bericht"];
                        $message = wordwrap($message, 70);  
                        $to = "info@something.com";
                        $subject = "Een gebruiker heeft een vraag of opmerking";
                        $body =  "<p>Een gebruiker heeft de volgende informatie achtergelaten:</p>";
                        $body .= "<table>";
                        $body .= "<tr>";
                        $body .= "<td>Van:</td><td> ".$name."</td>";
                        $body .= "</tr>";
                        $body .= "<tr>";
                        $body .= "<td>E-mail:</td><td> ".$from." </td></tr>";
                        $body .= "<tr>";
                        $body .= "<td>Telefoon:</td><td> ".$telnr."</td></tr>   ";
                        $body .= "</table>";
                        $body .= "<table>";
                        $body .= "<tr><td>".$message."</td></tr>";
                        $body .= "</table>";
                        echo $body;
                        $headers = "MIME-Version: 1.0" . "'r'n";
                        $headers .= "Content-type:text/html;charset=UTF-8" . "'r'n";
                        $headers .= "From: noreply@something.com";
                        // nu if else statement draaien
                         if ($name = ''){
                             echo '<p>U heeft geen naam ingevuld</p>';   
                         }else if($email = ''){
                             echo '<p>U heeft geen emailadres achter gelaten</p>';
                         }else if($body = ''){
                             echo '<p>U heeft geen bericht ingevuld niet ingevuld';
                         }
                         else {
                             if (mail ($to, $subject, $body, $headers)) {
                                echo '<p>Uw bericht is verzonden.</p>';
                            } else {
                                echo '<p>Er is iets mis gegaan bij het verzenden van de data, probeer het opnieuw.</p>';
                            }
                        } 
                    }
                ?>

你可能会在代码中发现,我遇到了两个问题。一个是电话号码没有被返回(当它作为POST进入时我检查了这两个(我刚刚这样做了,但它是空白的),一旦我通过if语句运行它。都保持空白

第二部分为正文。我把它回显出来,它在正常的浏览器页面中显示得很好,但是当它没有在电子邮件中显示时,因此电子邮件保持空白。一开始我以为是因为我添加了CSS内联,所以我删除了它,但电子邮件仍然是空白的。

谁能指出我的缺点,因为我很肯定我在这里犯了一些错误。我只是盯着它太久了,我就是看不出来。很可能它真的很简单,但我不能说出来。

在所有的if语句中,您都是赋值,而不是检查它们。您需要使用==而不是=