簡體   English   中英

簡單的聯系表將不起作用-PHP

[英]Simple contact form won't work - php

再次-我已經查找並進行了約一個小時的故障排除,無法使php聯系人表單正常工作。 我得到了“謝謝!” 電子郵件,但我從未收到過發送到我的收件箱的電子郵件。 我已經做了大約20次。

<div class="container">
<div class="row">
    <div class="col-lg-12">
      <h5>Want to contact me quickly? Use this form!</h5>
      <form id="contact" method="post" action="submit.php" class="form" role="form">
      <div class="row">
        <div class="form-group col-lg-4">
          <label>Name</label></br>
          <input type="text" name="name" placeholder="Enter your full name" required autofocus>
        </div>
        <div class="form-group col-lg-4">
          <label>Email address</label></br>
          <input type="email" name="email" placeholder="Enter your email address" required autofocus>
        </div>
        <div class="form-group col-lg-4">
          <label>Subject</label></br>
          <input type="text" name="subject" placeholder="Subject">
        </div>
        <div class="form-group col-lg-12">
          <label>Message</label>
          <textarea name="comments" name="message" data-provide="markdown-editable" rows="6" placeholder="Let's chat!" style="width:100%"></textarea>
        </div>
        <div class="form-group col-lg-12 form-action">
          <input type="hidden" name="Submit" value="contact">
          <button type="submit" class="btn btn-default">Submit</button>          
        </div>
    </form>
    </div>
</div>

PHP:

<?php
if ($_POST['Submit'])
{
$name=$_POST['name'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$comments=$_POST['comments'];
$to='MY EMAIL ADDRESS';
$from='website';

if (mail($to, $subject, $name, $email, $comments))
{
    echo 'Thank you!';
}
else
{
    echo 'Something went wrong! Try again';
}
}?>

任何幫助是極大的贊賞。 我已經安裝了MAMP服務器,並且得到“謝謝!” 每次都發信息,但我沒有收到任何電子郵件。 另外,我真的很想顯示“謝謝!” 然后返回到我的網頁,但是我什至無法使php正常工作,所以我也許應該堅持一下。

您錯誤地調用了mail()函數。 應該是這樣的:

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

因此,對於您的情況:

<?php
if ($_POST['Submit'])
{
    $name=$_POST['name'];
    $email=$_POST['email'];
    $subject=$_POST['subject'];
    $comments=$_POST['comments'];
    $to='email@email.com';
    $from='website';

    $message = 'Message: ' . $comments . "\r\n";
    $message .= 'From: ' . $from;

    $headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n";

    if (mail($to, $subject, $message, $headers))
    {
        echo 'Thank you!';
    }
    else
    {
        echo 'Something went wrong! Try again';
    }
}
?>

如果郵件已在系統中排隊且沒有錯誤,則mail()函數僅返回true,但是它不會告訴您電子郵件是否實際上已發送。 我看到您使用的是Mac OS X,因此必須在PHP環境中配置SMTP設置(由ISP提供)才能使郵件發送正常。

或者,您可以使用Amazon SES之類的服務通過PHP發送電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM