Почему функция отправки электронной почты не работает? - PullRequest
0 голосов
/ 12 октября 2018

Я хочу отправить электронное письмо, когда кто-нибудь нажмет на ссылку для скачивания на моем сайте.Я работаю в PHP и JavaScript.Следующие два фрагмента находятся в одном файле.

HTML

<form method="post">
  <div class="form-group">
      <input type="email" class="form-control" placeholder="Enter Email ID" id="email" onchange="check();" require pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$"/>
  </div>
  <div class="form-group">
    <label style="font-size:14px;"><input type="checkbox" id="toggle"> I agree to receive emails from MarketerBoard. We will not share your any personal information with anyone.</label>
  </div>
  <div class="form-group" style="min-height:40px;">
      <a style="display:none;" href="/images/docs/EMAIL-MARKETING-GUIDE.pdf" name="downloadBtn" download class="mb-button" id="dwn-btn" onchange="check();" onClick="sendmail();">Get your free guide</a>
  </div>
</form>

JavaScript

if(isset($_POST['downloadBtn']))
{
    $to      = 'examle@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: example@example.com' . "\r\n" .
        'Reply-To: example@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

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


   //echo 'Email Sent.';
 }

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

 <script type="text/javascript">

    function check() {     
        document.getElementById("toggle").checked = false;
        var email_x = document.getElementById("email").value;
        filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (filter.test(email.value)) {
            document.getElementById("email").style.border = "2px solid teal";
            var userEmail = document.getElementById('email').value
            $('#toggle').click(function () {
            //check if checkbox is checked
            if ($(this).is(':checked') & filter.test(email.value)) {
                 $("#dwn-btn").show(); } 
                else {
                $("#dwn-btn").hide();}});
                return true;
        } else {
            document.getElementById("email").style.border = "2px solid red";
            $("#dwn-btn").hide();
            return false;
        }
    }

</script>

1 Ответ

0 голосов
/ 12 октября 2018

Сначала проверьте / измените конфигурацию вашей почты PHP:

  1. Откройте файл php.ini
  2. Найдите строку, которая читает [mail function]
  3. Add/ изменить данные вашего почтового сервера.Это может быть локальный почтовый сервер или почтовый сервер вашего интернет-провайдера.
  4. Сохранение / закрытие файла php.ini
  5. Перезагрузка веб-сервера

Пример коданиже:

<form action="" method="post">
    <input type="submit" value="Send email" />
    <input type="hidden" name="send_mail" value="1" />
</form>

<?php

if(isset($_POST['send_mail']))
{
    $to      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: nobody@example.com' . "\r\n" .
        'Reply-To: nobody@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

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

    echo 'Email Sent.';
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...