php basit iletişim formu bile onaylandıktan sonra posta göndererek değil

5 Cevap php

'Ben portföy sitesi (şu anda ücretsiz megabyet.net hesabına) üzerinde çalışan bir php iletişim formu almak için çalışıyorlar, ama ben teşekkür / onay mesajı almak olsa bile (yüklendiği sitede) test, ben hala don t (kodunda belirtilen) my mail hesabına herhangi bir ileti aldığınızda, ben .... yardıma ihtiyaç burada sorunu anlamak için görünmüyor olabilir!

Bu SMTP ile ilgili bir şey olabilir?


İşte kod:

<?php
if(isset($_POST['submit'])) {

$to = "vishu_unlocker@yahoo.com";
$subject = "Portfolio Contact";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$headers = "From: $email_field";
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

echo "Mail has been sent, thankyou!";
mail($to, $subject, $body, $headers);

} else {

echo "blarg!";

}
?>

HTML-Kodu:

<form id="contact_frm" action="mail.php" method="POST">
<h4>Name :</h4>
<input type="text" id="f_name" name="name"/><br/><br/>
<h4>E-Mail Address :</h4>
<input type="text" id="f_email" name="email"/><br/><br/>
<h4>Message :</h4>
<textarea id="f_msg" name="message" cols="22" rows="5"/></textarea><br/><br/>
<input id="send_btn" type="submit" value="Send >>" name="submit" /><br/>
</form>

5 Cevap

mail() posta başarıyla gönderildi olup olmadığını belirlemek için gerçek ya da değil döndürür Öncelikle kontrol edilmelidir:

<?php
if(isset($_POST['submit'])) {

    $to = "vishu_unlocker@yahoo.com";
    $subject = "Portfolio Contact";
    $name_field = $_POST['name'];
    $email_field = $_POST['email'];
    $message = $_POST['message'];
    $headers = "From: $email_field";
    $body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

    $success = mail($to, $subject, $body, $headers);
    if ($success) {
        echo "Mail has been sent, thankyou!";
        // redirect to thank you page here
    }
    else {
        echo "message failed";
    }
} else {

echo "blarg!";

}
?>

Bunu deneyin ve eğer inşaat bize bildirin.

Ayrıca, farklı bir e-posta adresine gönderme denediniz mi? Bu Yahoo spam için bu web barındırma engelliyor olabilir. Ücretsiz bir ev sahibi olmanın bu çok olası senaryo.

SMTP üzerinden e-posta gönderme ile ilgili bir şey arıyorsanız. Ben Kod Çakmaklar mailler sınıfını kullanmanızı tavsiye ederim.

http://codeigniter.com/user_guide/libraries/email.html

Bu da hata ayıklama ve incelikle SMTP hataları işlemek için izin verir.

Bu SMTP ile ilgili bir şey olabilir?

Muhtemelen. Neden MTA sizin mailQ ve log dosyalarını kontrol etmiyorsunuz?

@ John .. o ile kontrol eğer aşağıdaki kod ile durum ve i = / ... yani benim mail() function ... (false = başarısız bir çıkış dönen olsun ve evet ben gmail denedim ama posta işlevi ilk etapta ince çalışan ile değil .... bu işe yaramazsa ...

<?php
if(isset($_POST['submit'])) {

$to = "vishu_unlocker@yahoo.com";
$subject = "Portfolio Contact";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$headers = "From: $email_field";
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

$success = mail($to, $subject, $body, $headers);

if($success) { 
 echo "Mail has been sent, thankyou!";

} else {
 echo "message sending failed!";
 }
} else {
 echo "blarg!";
 }
?>

output - Mesaj gönderme başarısız oldu!

yani, ben burada bazı ekstra params'ı tanımlamanız gerekiyor ... Ayrıca benim ev sahibi olarak sendmail yolunu vermiş olduğunu gördüm - /usr/sbin/sendmail benim mail fonksiyonu kötü oyunculuk ile ilgisi var mı? demek ... Ben de sendmail param tanımlamak gerekiyor?

@unknown- hmm CodeIgniter yardımcı olabilir, ama ben daha önce hiç kullanmadım ... bakalım ...

@symcbean- üzgünüm ben bunu nasıl bilmiyorum:? P. .. probabaly ben çok iyi henüz SMTP ile bilgili değilim çünkü .... hala bir öğrenci / acemi ...