PHP邮件功能不从Gmail地址发送

时间:2012-08-10 19:33:11

标签: php forms email gmail

我正在努力让这个联系表格正常工作,它似乎无法发送标题说它来自gmail地址我觉得雅虎地址也是混合的那些不起作用。这段代码似乎对此很重要。如果主持人很重要我在Dreamhost上。请告诉我。

    if(!is_array($contact_information_type))
{
    $contact_information_type = Array();
}

if($_POST){
    $contact_name = trim(stripslashes($_POST["contact_name"]));
    $contact_company = trim(stripslashes($_POST["contact_company"]));
    $contact_address1 = trim(stripslashes($_POST["contact_address1"]));
    $contact_address2 = trim(stripslashes($_POST["contact_address2"]));
    $contact_city = trim(stripslashes($_POST["contact_city"]));
    $contact_state = trim(stripslashes($_POST["contact_state"]));
    $contact_zip = trim(stripslashes($_POST["contact_zip"]));
    $contact_country = trim(stripslashes($_POST["contact_country"]));
    $contact_phone = trim(stripslashes($_POST["contact_phone"]));
    $contact_fax = trim(stripslashes($_POST["contact_fax"]));
    $contact_email = trim(stripslashes($_POST["contact_email"]));
    $contact_comments = trim(stripslashes($_POST["contact_comments"]));
if($contact_name == ""){ $errors_array[] = "Name is required."; }
if($contact_company == ""){ $errors_array[] = "Company name is required."; }
        if($contact_city == "") { $errors_array[] = "City is required."; }

if($contact_state == ""){ $errors_array[] = "State is required."; }




if($contact_country == "") { $errors_array[] = "Country is required.";}
elseif($contact_country == "United States" ) 
{if($contact_zip != "" && !preg_match("/(^\d{5}$)|(^\d{5}-\d{4}$)/", $contact_zip)){       $errors_array[] = "Incorrect Zip. (e.g. 60660 or 60660-1234)"; };}
elseif($contact_country == "Canada" ){if($contact_zip != "" && !preg_match("/^[ABCEGHJ-    NPRSTVXY]{1}[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[ ]?[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[0-9]{1}$/i",     $contact_zip)){ $errors_array[] = "Incorrect Zip. (e.g. M4C 1B5 or M4C1B5)"; };}
                                                                                                                                                                                                                                else {;}






    if($contact_phone == ""){ $errors_array[] = "Phone is required."; }
    if($contact_phone != "" && !preg_match("/(^\d{3}-\d{3}-\d{4}$)|  (^\d{10}$)/", $contact_phone)){ $errors_array[] = "Incorrect Phone. (e.g. 123-123-1234)"; }
    if($contact_fax != "" && !preg_match("/(^\d{3}-\d{3}-\d{4}$)|(^\d{10}$)/",   $contact_fax)){ $errors_array[] = "Incorrect Fax. (e.g. 123-123-1234)"; }
    if($contact_email == ""){ $errors_array[] = "E-mail is required."; }
    if($contact_email != "" && !preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.  [a-zA-Z0-9-.]+$/", $contact_email)){ $errors_array[] = "Incorrect E-mail. (e.g.   youremail@domain.com)"; }
if($contact_comments == ""){ $errors_array[] = "Comments are required."; }
    if(sizeof($errors_array) == 0){
        $contact_information_type = implode(", ",     $contact_information_type);

$email_message = <<<MESSAGE
The contact form on www.rotaryvalve.com has been filled out with the following information:


Name: ${contact_name}
Company: ${contact_company}
Address 1: ${contact_address1}
Address 2: ${contact_address2}
City: ${contact_city}
State: ${contact_state}
Zip: ${contact_zip}
Country: ${contact_country}
Phone: ${contact_phone}
Fax: ${contact_fax}
E-mail: ${contact_email}
Comments/Products of Interest: ${contact_comments}
MESSAGE;

        $email_adds = array("sales-team@wmwmeyer.com", "dan@danbaran.com");
        $email_from = $contact_email;
        $email_subject = "Customer Request/Comment";
        foreach($email_adds as $email_to){
            mail ($email_to, $email_subject, $email_message, "From: ".$email_from." <".$email_from.">");
        }

基本上如果填写在表单上的contact_email(代码不包括抱歉不认为你需要它但是让我知道你是否这样做)是一个gmail帐户它似乎没有发送它请帮助我在这一个。

2 个答案:

答案 0 :(得分:2)

问题未发送或未收到。我很确定问题不在于发送的电子邮件,而是当收件人的电子邮件服务收到邮件时会发生什么。它可能被归类为垃圾邮件,因为他们可以看到它不是从GMail邮件服务器发送的。

答案 1 :(得分:1)

由于gmail.com域上的SPF记录很可能将电子邮件标记为垃圾邮件,因此接收服务器或客户端可能会将该电子邮件归类为垃圾邮件。

然而,您可以使用联系表单中输入的电子邮件的“回复”标题发送电子邮件。这将使电子邮件更有可能通过垃圾邮件过滤器,如果收件人点击其客户端中的“回复”按钮,则电子邮件将默认发送到此地址。