• 10-10-2020, 05:55:06
    #1
    arkadaşlar bir türlü çözemedim. ne denesem olmadı. yardımcı olabilir misiniz?

    sürekli "Oops! Something went wrong and we couldn't send your message." hatası alıyorum.

    form html:

    <form id="contact-form" action="mail.php" method="post">
    <div class="form-box-five">
    <div class="single-input">
    <input name="con_name" type="text" class="input-box" required placeholder="Enter your name">
    </div>
    <div class="single-input">
    <input name="con_email" type="email" class="input-box" required placeholder="Enter your email">
    </div>
    <div class="single-input">
    <input name="con_offer" type="textarea" class="input-box" required placeholder="Your offer price $">
    </div>
    
    </div>
    <div class="form-buttom-button">
    <button type="submit" name="submit" class="btn btn--full btn--bg-2">Send my Offer</button>
    </div>
    <p class="form-messege"></p>
    </form>
    mail.php

    <?php
    header("Access-Control-Allow-Origin: *");
    // Only process POST reqeusts.
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Get the form fields and remove whitespace.
    $name = strip_tags(trim($_POST["con_name"]));
    $name = str_replace(array("\r","\n"),array(" "," "),$name);
    $email = filter_var(trim($_POST["con_email"]), FILTER_SANITIZE_EMAIL);
    $message = trim($_POST["con_offer"]);
    
    // Check that data was sent to the mailer.
    if ( empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Set a 400 (bad request) response code and exit.
    http_response_code(400);
    echo "Please complete the form and try again.";
    exit;
    }
    
    // Set the recipient email address.
    $recipient = "mail@mail";
    
    // Set the email subject.
    $subject = "Mail From $name";
    
    // Build the email content.
    $email_content = "Name: $name\n";
    $email_content .= "Email: $email\n";
    $email_content .= "Message:\n$message\n";
    
    // Build the email headers.
    $email_headers = "From: $name <$email>";
    
    // Send the email.
    if (mail($recipient, $subject, $email_content, $email_headers)) {
    // Set a 200 (okay) response code.
    http_response_code(200);
    echo "Thank You! Your message has been sent.";
    } else {
    // Set a 500 (internal server error) response code.
    http_response_code(500);
    echo "Oops! Something went wrong and we couldn't send your message.";
    }
    
    } else {
    // Not a POST request, set a 403 (forbidden) response code.
    http_response_code(403);
    echo "There was a problem with your submission, please try again.";
    }
    
    ?>
  • 10-10-2020, 06:18:43
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    http_response_code(500); hatası alıyorsunuz sanırım mail adresinize bağlanılamıyor SMTP ayarlarınızı kontrol edin
  • 10-10-2020, 06:56:33
    #3
    babfo adlı üyeden alıntı: mesajı görüntüle
    http_response_code(500); hatası alıyorsunuz sanırım mail adresinize bağlanılamıyor SMTP ayarlarınızı kontrol edin
    hocam mail gidecek adres gmail. iletişim formunu doldurup göndere bastığında direkt gitmesi gerekmiyor mu? benim sunucumla alakalı bir durum var mı ki burada?

    edit: başka bir sitede(farklı bir yerde barınan) denediğimde mail() fonksiyonu güvenlik amacıyla kapalıdır diyor. acaba burada da aynı durum olabilir mi?
  • 10-10-2020, 08:16:31
    #4
    php mail bir çok hatta tüm sunucularda kapalıdır smtp kullanmalısınız.
  • 13-10-2020, 05:22:58
    #5
    ntka adlı üyeden alıntı: mesajı görüntüle
    php mail bir çok hatta tüm sunucularda kapalıdır smtp kullanmalısınız.
    smtp ile hallettim fakat form js ile çalışırken onu bozdum ilginç şekilde

    işin ilginci aynı sayfada mail() fonksiyonu ile var olan formda hala js çalışırken smtp ile maili gönderen formda çalışmıyor.

    mail göndermeyen fakat hatayı js ile yazan form:

    <!-- Contact Form -->
    <form id="contact-form" action="mail-script.php" method="post">
    <div class="form-box-five">
    <div class="single-input">
    <input name="name" type="text" class="input-box" required placeholder="Enter your name">
    </div>
    <div class="single-input">
    <input name="subject" type="text" class="input-box" required placeholder="Enter your name">
    </div>
    <div class="single-input">
    <input name="email" type="email" class="input-box" required placeholder="Enter your email">
    </div>
    <div class="single-input">
    <input name="message" type="text" class="input-box" required placeholder="Your offer price $">
    </div>
    <div class="single-input submit-box mt-4">
    
    </div>
    
    </div>
    <div class="form-buttom-button">
    <button type="submit" name="submit" class="btn btn--full btn--bg-2">Send my Offer</button>
    </div>
    <p class="form-messege"></p>
    </form>
    mail gönderen fakat js ile değil php dosyasına yönlendiren form:

    <form id="contact-form" action="mail-script.php" method="post">
    
    
    <div class="form-box-five">
    <div class="single-input">
    <input name="subject" type="text" class="input-box" required placeholder="Konu">
    </div>
    
    <div class="single-input">
    <input name="name" type="text" class="input-box" required placeholder="Enter your name">
    </div>
    <div class="single-input">
    <input name="telno" type="number" class="input-box" required placeholder="Enter your phone number">
    </div>
    <div class="single-input">
    <input name="email" type="email" class="input-box" required placeholder="Enter your email">
    </div>
    
    <div class="single-input">
    <textarea name="message" class="input-box" style="width: 332px;
    height: 100px;" required placeholder="Mesaj..."></textarea>
    </div>
    
    </div>
    
    <div class="form-buttom-button">
    <button type="submit" name="submit" class="btn btn--full btn--bg-2">Send my Offer</button>
    </div>
    <p class="form-messege"></p>
    </form>
    her ikisi de aynı .js, aynı mail dosyalarını kullanıyor.


    <!-- Ajax Mail JS -->
    <script src="assets/js/plugins/ajax.mail.js"></script>

    $(function() {
    
        // Get the form.
        var form = $('#contact-form');
    
        // Get the messages div.
        var formMessages = $('.form-messege');
    
        // Set up an event listener for the contact form.
        $(form).submit(function(e) {
            // Stop the browser from submitting the form.
            e.preventDefault();
    
            // Serialize the form data.
            var formData = $(form).serialize();
    
            // Submit the form using AJAX.
            $.ajax({
                type: 'POST',
                url: $(form).attr('action'),
                data: formData
            })
            .done(function(response) {
                // Make sure that the formMessages div has the 'success' class.
                $(formMessages).removeClass('error');
                $(formMessages).addClass('success');
    
                // Set the message text.
                $(formMessages).text(response);
    
                // Clear the form.
                $('#contact-form input,#contact-form textarea').val('');
            })
            .fail(function(data) {
                // Make sure that the formMessages div has the 'error' class.
                $(formMessages).removeClass('success');
                $(formMessages).addClass('error');
    
                // Set the message text.
                if (data.responseText !== '') {
                    $(formMessages).text(data.responseText);
                } else {
                    $(formMessages).text('Oops! An error occured and your message could not be sent.');
                }
            });
        });
    
    });
    yardımcı olabilecek var mıdır?


    edit:üstteki formu kaldırınca alttaki form ajax ile çalışmaya başlıyor fakat mail göndermiyor
    üstteki form hata verirken alttaki formun altında da hata çıkarıyor.
  • 13-10-2020, 08:54:08
    #6
    kodlari pm ile gönderin test edeyim. Smtp olanlari gönderin.