2015-07-05 2 views
1

Я разработал приложение для iOS и серверы блейд-серверов. Хотя я взял некоторые классы HTML еще в университете, это было долгое время с тех пор, как я коснулся любого.Форма HTML не отправляет электронное письмо по адресу

Я приобрел веб-сайт шаблона, который будет моей целевой страницей приложения. Я изменил его, чтобы быть тем, что хочу, но у меня есть 1 проблема с страницей отправки контактов/формы. Когда я нажимаю кнопку «Отправить», я не получаю письмо по указанному адресу электронной почты. Я не уверен, что это проблема с кодом (я предполагаю, что нет, я думаю, у этого высоко оцененного шаблона было бы что-то вроде этого правильно), или если мне нужно настроить что-то с моим доменом, что я сейчас не сделали так, как я бы не знал об этом.

Вот соответствующий код ...

index.html

<form action="javascript:;" method="post"> 
    ... 
    <input type="submit" class="button white" value="Send &#x2192;" /> 
</form> 

send_email.php

<?php 

    // Replace this with your own email address 
    $to="[email protected]"; 

    // Extract form contents 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $website = $_POST['website']; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 

    // Validate email address 
    function valid_email($str) { 
     return (! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE; 
    } 

    // Return errors if present 
    $errors = ""; 

    if($name =='') { $errors .= "name,"; } 
    if(valid_email($email)==FALSE) { $errors .= "email,"; } 
    if($message =='') { $errors .= "message,"; } 

    // Send email 
    if($errors =='') { 

     $headers = 'From: FluidApp <[email protected]>'. "\r\n" . 
        'Reply-To: '.$email.'' . "\r\n" . 
        'X-Mailer: PHP/' . phpversion(); 
     $email_subject = "Website Contact Form: $email"; 
     $message="Name: $name \n\nEmail: $email \n\nWebsite: $website \n\nSubject: $subject \n\nMessage:\n\n $message"; 

     mail($to, $email_subject, $message, $headers); 
     echo "true"; 

    } else { 
     echo $errors; 
    } 

?> 

Однако, ничего не отправляется на мою электронную почту «[email protected] ».

Что мне здесь не хватает?

+0

Вы говорите, что ваш приложение находится на рубине на рельсах, но ваш код отправки электронной почты находится в php. – doru

+0

@doru Мое приложение предназначено для iOS, aI написало, что это сервер в рельсах. Тем не менее, я купил шаблон сайта целевой страницы (этот, если быть точным, http://themeforest.net/item/fluidapp-responsive-mobile-app-website-template/2251839), который написан в формате HTML, CSS, PHP. Я просто настраиваю его, чтобы показать свои изображения и т. Д. Я не хотел писать сайт с нуля. Мой сервер приложений и эта целевая страница - это две разные вещи. Вероятно, не стоит даже упоминать мое приложение или бэкэнд. –

+0

Для отладки см. [Почтовая форма PHP не отправляет электронную почту] (http://stackoverflow.com/q/24644436) – mario

ответ

3

Может заменить

<form action="javascript:;" method="post"> 

с

<form action="send_email.php" method="post"> 

Это должно сделать это, предполагая, что ... в вашем HTML сниппет содержит правильные переменные формы submission- name, email, website, subject, message и т. Д.

EDIT:OP figured it out.

+0

Да, они содержат правильные переменные. После замены «send_email.php», нажав «Отправить», я перешел на myexamplewebsite.com/send_email.php, и страница просто читает «true» из инструкции echo в php. Однако после 5 минут ожидания не отправляется электронное письмо. –

+0

@chrisP Хм.Возможно, загляните в эту строку: '$ to =" [email protected] ";'? –

+0

Кажется, это хорошо. У меня есть пятизначный адрес, который у меня есть, есть мой адрес электронной почты. –

-1

Поместите <form action="send_email.php" method="post">

и удалить <form action="javascript:;" method="post">

он будет работать совершенствовать ваш send_email.php хорошо

место все 2 файлов в одной папке

+0

Оставайся оригинальным, мой друг :) –