简体   繁体   中英

PHP Mail Function not sending from Gmail Addresses

I'm trying to get this contact form working and it doesn't seem to be able to send with headers saying it is from a gmail address I feel like yahoo addresses were also in the mix of ones that didn't work. Here is the code that seems like it would matter to this. If the host matters I am on Dreamhost. Let me know please.

    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.">");
        }

essentially if the contact_email filled out on the form(code not included sorry didn't think you'd need it but let me know if you do) is a gmail account it doesn't seem to send it please help me out on this one.

Is the problem not being sent, or not being received. I'm pretty sure that the problem is not the email being sent, but what happens when it gets received by the receiver's email service. It may be classed as spam, because they can see it is not sent from the GMail mailservers.

The email may be classed as spam by the receiving server or client, due to SPF records on the gmail.com domain that will most likely mark the emails as spam.

You would however be able to send the email with a 'Reply-To' header of the email entered in the contact form. This would give the email a better chance of getting past spam filters, and if the recipient hits the "Reply" button in their client, the email will default to being sent to this address.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM