2016-12-31 55 views
1

我正在商業網站上創建申請表。應用程序需要發送到一個電子郵件地址有兩個擴展名(不確定適當的術語:.ns.ca)例如[email protected]Php申請表 - 獨特的電子郵件錯誤

我的php目前沒有日誌錯誤,在發短信提交者確實收到確認電子郵件和上面的電子郵件顯示在TO:字段。但是這封電子郵件永遠不會被收到。

當我改變TO:電子郵件的東西只有.com或.ca擴展時,表單工作得很好。

如何設置我的服務器或php來容納這個唯一的電子郵件地址?

<?php 
    // Fetching Values from URL. 
    $firstname = $_POST['firstname1']; 
    $lastname = $_POST['lastname1']; 
    $address = $_POST['address1']; 
    $email = $_POST['email1']; 
    $phone = $_POST['phone1']; 
    $regular = $_POST['regular1']; 
    $family = $_POST['family1']; 
    $crest = $_POST['crest1']; 


    $email = filter_var($email, FILTER_SANITIZE_EMAIL); // Sanitizing E-mail. 

// After sanitization Validation is performed 
if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    if (!preg_match("/^[0-9]{10}$/", $phone)) { 
     echo "<span>* Please Fill Valid Contact No. *</span>"; 
     } else { 
     $subject = $firstname + $lastname + "HWA Application"; 
     // To send HTML mail, the Content-type header must be set. 
     $headers = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     $headers .= 'From:' . $email. "\r\n"; // Sender's Email 
     $headers .= 'Cc:' . $email. "\r\n"; // Carbon copy to Sender 
     $template = '<div style="padding:50px; color:white;">Hello ' . $firstname . $lastname . ',<br/>' 
     . '<br/>Thank you...! For Contacting Us.<br/><br/>' 
     . 'Name:' . $firstname + $lastname . '<br/>' 
     . 'Address:' . $address . '<br/>' 
     . 'Email:' . $email . '<br/>' 
     . 'This is a Contact Confirmation mail.' 
     . '<br/>' 
     . 'We Will contact You as soon as possible .</div>'; 
     $sendmessage = "<div style=\"background-color:#7E7E7E; color:white;\">" . $template . "</div>"; 
     // Message lines should not exceed 70 characters (PHP rule), so wrap it. 
     $sendmessage = wordwrap($sendmessage, 70); 
     // Send mail by PHP Mail Function. 
     mail("[email protected]", $subject, $sendmessage, $headers); 
     echo "Your Query has been received, We will contact you soon."; 
     } 
     } else { 
     echo "<span>* invalid email *</span>"; 
     } 
     ?> 
+0

您可能正在處理filter_vars查看電子郵件地址並傳回'false'。使用「print_r($ email)」測試它並查看輸出結果。如果它是「假」,那麼過濾器就是怪罪。電子郵件過濾是一件複雜的事情,幾乎在任何地方都很難實施。我真的會考慮,如果你'確實'需要確保電子郵件是有效的?還是通過電子郵件發送足夠的無效電子郵件地址進行測試? – TolMera

+0

推薦閱讀:使用REGEX進行電子郵件驗證http://www.regular-expressions.info/email.html – TolMera

+0

我不認爲我正在驗證To:電子郵件,這是我目前關注的電子郵件。有這樣的電子郵件的人,所以我會刪除驗證器,因爲我們不需要那麼複雜。 但是,我在收件人的電子郵件地址硬編碼,我沒有看到任何驗證。 'mail(「[email protected]」,$ subject,$ sendmessage,$ headers);' 如上所述,表單效果很好,但To:電子郵件永遠不會收到這個。如果我使用「[email protected]」,它將工作得很好。想法? – Bromox

回答

0

這最終成爲GoDaddy的區域文件問題。爲他們處理一個問題的複雜性。我最終創建了一個使用gmail的獨立電子郵件帳戶,可以將任何應用程序自動轉發到正確的電子郵件。沒有理想,但這工作得很好。