2014-03-19 125 views
0

我遇到了我的聯繫表格問題,郵件沒有被髮送到我指定的電子郵件地址。誰能告訴我,如果我在這裏做得不對:聯繫表格不發送電子郵件到我的地址

$emailTo = '[email protected]'; 
$siteTitle = 'My sitename went here'; 

error_reporting(E_ALL^E_NOTICE); // hide all basic notices from PHP 

//If the form is submitted 
if(isset($_POST['submitted'])) { 

    // require a name from user 
    if(trim($_POST['contactName']) === '') { 
     $nameError = 'Forgot your name!'; 
     $hasError = true; 
    } else { 
     $name = trim($_POST['contactName']); 
    } 

    // need valid email 
    if(trim($_POST['email']) === '') { 
     $emailError = 'Forgot to enter in your e-mail address.'; 
     $hasError = true; 
    } else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['email']))) { 
     $emailError = 'You entered an invalid email address.'; 
     $hasError = true; 
    } else { 
     $email = trim($_POST['email']); 
    } 

    // we need at least some content 
    if(trim($_POST['comments']) === '') { 
     $commentError = 'You forgot to enter a message!'; 
     $hasError = true; 
    } else { 
     if(function_exists('stripslashes')) { 
      $comments = stripslashes(trim($_POST['comments'])); 
     } else { 
      $comments = trim($_POST['comments']); 
     } 
    } 

    $subject = 'New message to '; 
     $sendCopy = ""; 
     $body = "Name"; 
     $headers = 'From: ' .' <'.$email.'>'; 

     mail($emailTo, $subject, $body, $headers); 

    // upon no failure errors let's email now! 
    if(!isset($hasError)) { 

     $subject = 'New message to '.$siteTitle.' from '.$name; 
     $sendCopy = trim($_POST['sendCopy']); 
     $body = "Name: $name \n\nEmail: $email \n\nMessage: $comments"; 
     $headers = 'From: ' .' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email; 

     mail($emailTo, $subject, $body, $headers); 

     //Autorespond 
     $respondSubject = 'Thank you for contacting '.$siteTitle; 
     $respondBody = "Your message to $siteTitle has been delivered! \n\nWe will answer back as soon as possible."; 
     $respondHeaders = 'From: ' .' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $emailTo; 

     mail($email, $respondSubject, $respondBody, $respondHeaders); 

     // set our boolean completion value to TRUE 
     $emailSent = true; 
    } 
+3

你有自己的SMTP服務器嗎?或者你的網絡託管? – StaNov

+0

它發送到任何電子郵件地址?你怎麼知道mail()函數正在執行? – j08691

+0

我沒有看到電子郵件被分配到任何地方......也許你打算在有效的電子郵件檢查中這樣做而不是「電子郵件」? – aashnisshah

回答

0

嘗試用微型腳本來檢查或發送郵件是可能的:

<?php 
$to = "[email protected]"; 
$subject = "My subject"; 
$txt = "Hello world!"; 
$headers = "From: [email protected]" . "\r\n" . 
"CC: [email protected]"; 

mail($to,$subject,$txt,$headers); 
?> 
+1

謝謝,我弄明白了。這是dreamhost的服務器設置問題。代碼應該可以正常工作。 – user3437911

0

我會建議你嘗試PHPMailer的與SMTP配置它具有很大的靈活性。

PHPMailer

相關問題