Как сделать так, чтобы моя контактная форма отправила мне письмо - PullRequest
0 голосов
/ 12 декабря 2011

Вот мой обновленный код, пытающийся заставить мою форму отправить мне электронное письмо.Я добавил запросы php к серверу вокруг формы, хотя код, похоже, их не читает.Мой код отображается в виде текста на сайте после нажатия для теста.Помню, однажды я вызвал php в голове от разметки формы, но не могу вспомнить этот синтаксис.

Вот код, который я пытаюсь использовать:

<?php 
if ($_POST["email"]<>'') { 
    $ToEmail = 'chaseoutt@gmail.com'; 
    $EmailSubject = 'Site contact form '; 
    $mailheader = "From: ".$_POST["email"]."\r\n"; 
    $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
    $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
    $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
    $MESSAGE_BODY .= "URL: ".$_POST["url"]."<br>"; 
    $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>"; 
    mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 
Your message was sent
<?php 
} else { 
?> 

  <p style="font-style:italic; font-size:12px; font-weigh: normal; margin-top: -89px;     margin-left: 33px;">Contact me written in a different language.</p> <img src="http://www.cameroncashwell.com/imgs/pointing-left.png" style="float: right; margin-right: 140px; margin-top: -89px;">

<div class="form-div"> 
    <form id="fvujq-form1" style="font-size:22px; color:#333;" method="post" action="">
      <div class="form-row"><span class="label">Name *</span><input type="text" name="name" /></div>
      <div class="form-row"><span class="label">Email *</span><input type="text" name="email" /></div>
      <div class="form-row"><span class="label">URL</span><input type="text" name="url" /></div>
      <div class="form-row"><span class="label">Comment *</span><textarea name="comment"></textarea></div>
      <div class="form-row"><input class="submit" type="submit" value="Submit"></div>
    </form>
</div>
    <?php 
}; 
?>

Где моя ошибка?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

Электронная почта не отправляется кодом JavaScript в клиенте;оно отправлено с сервера.Когда пользователь нажимает «Отправить» и все проверки на стороне клиента пройдены, данные формы отправляются на сервер POST.Атрибут «action» элемента формы указывает, какой URL на сервере должен получать данные формы POST;то есть что-то вроде action = "send_email.php" или что-то в этом роде.

Как на самом деле генерируется электронная почта на сервере, полностью зависит от используемой серверной технологии, например, PHP или JSP, или чего-то еще.

Итак, в приведенном выше коде отсутствуют две вещи:

  1. значение для действия = в форме и
  2. код на стороне сервера (файл PHP,или что-то еще), которое получит данные и отправит электронное письмо (соответствует # 1)
0 голосов
/ 12 декабря 2011

И чтобы добавить к ответу @ smendola ...

После того, как вы отсортировали отправку электронной почты на стороне сервера, вы, возможно, все равно не получите ожидаемое письмо.Некоторые почтовые хосты (на самом деле довольно многие) проверяют достоверность подписей отправляющего сервера.Если это не удается (т. Е. Отсутствует подпись или имеются только самозаверяющие подписи), хост электронной почты может отклонить письмо как спам.

Один из способов избежать этого - отправлять данные формы через SMTP, а не из собственной отправки PHP.() функция.Самым простым решением будет PHPMAILER .Например, вы можете отправить материал через учетную запись Gmail .

...