0

我有一个包含此代码的联系表

$message = "Telephone Number: $telephone"."\n"."Job Details: $message"."\n"."Number of Pages Required: $pages"."\n"."Clients Budget: $budget";

但是我不能像它应该的那样在电子邮件中换行。我不知道我可能还需要什么其他代码。谢谢你。

atb 阿兰

<?php
// Clean up the input values
foreach($_POST as $key => $value) {
if(ini_get('magic_quotes_gpc'))
$_POST[$key] = stripslashes($_POST[$key]);

$_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
}

mb_convert_encoding($string, "UTF-8"); //AUTO DETECT AND CONVERT
mb_convert_encoding($string, "UTF-8", "latin1");

// Assign the input values to variables for easy reference
$name = $_POST["name"]; 
$email = $_POST["email"];
$telephone = $_POST["telephone"];
$pages = $_POST["pages"];
$budget = $_POST["budget"];
$message = $_POST["message"];

  // Test input values for errors
$errors = array();
if(strlen($name) < 2) {
if(!$name) {
$errors[] = "You must enter a name.";
} else {
$errors[] = "Name must be at least 2 characters.";
}
}
if(!$email) {
$errors[] = "You must enter an email.";
} else if(!validEmail($email)) {
$errors[] = "You must enter a valid email.";
}
if(strlen($telephone) < 6) {
if(!$telephone) {
$errors[] = "You must enter a phone number.";
} else {
$errors[] = "Message must be at least 6 characters. (include area code)";
}
}
if(strlen($message) < 10) {
if(!$message) {
$errors[] = "You must enter a message.";
} else {
$errors[] = "Message must be at least 10 characters.";
}
}

if($errors) {
// Output errors and die with a failure message
$errortext = "";
foreach($errors as $error) {
$errortext .= "<li>".$error."</li>";
}
die("<span class='failure'>The following errors occured:<ul>". $errortext ."</ul>   </span>");
}

// Send the email
$to = "contact@dorsetdesigns.co.uk";
$subject = "Quote Request: $name";
$message = "Telephone Number: $telephone"."\n"."Job Details: $message"."\n"."Number of Pages Required: $pages"."\n"."Clients Budget: $budget";
$headers = 'Content-Type: text/html; charset=utf-8';
"Quote Request From: $email";

mail($to, $subject, $message, $headers);

// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");

// A function that checks to see if
// an email is valid
function validEmail($email)
{
$isValid = true;
$atIndex = strrpos($email, "@");
if (is_bool($atIndex) && !$atIndex)
{
  $isValid = false;
}
else
{
  $domain = substr($email, $atIndex+1);
  $local = substr($email, 0, $atIndex);
  $localLen = strlen($local);
  $domainLen = strlen($domain);
  if ($localLen < 1 || $localLen > 64)
  {
     // local part length exceeded
     $isValid = false;
  }
  else if ($domainLen < 1 || $domainLen > 255)
  {
     // domain part length exceeded
     $isValid = false;
  }
  else if ($local[0] == '.' || $local[$localLen-1] == '.')
  {
     // local part starts or ends with '.'
     $isValid = false;
  }
  else if (preg_match('/\\.\\./', $local))
  {
     // local part has two consecutive dots
     $isValid = false;
  }
  else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
  {
     // character not valid in domain part
     $isValid = false;
  }
  else if (preg_match('/\\.\\./', $domain))
  {
     // domain part has two consecutive dots
     $isValid = false;
  }
  else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
             str_replace("\\\\","",$local)))
  {
     // character not valid in local part unless
     // local part is quoted
     if (!preg_match('/^"(\\\\"|[^"])+"$/',
         str_replace("\\\\","",$local)))
     {
        $isValid = false;
     }
  }
  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
  {
     // domain not found in DNS
     $isValid = false;
  }
  }
  return $isValid;
  }

  ?>

和js

    $(function() {
      // Validate the contact form
      $('#contactform').validate({
        // Specify what the errors should look like
        // when they are dynamically added to the form
        errorElement: "label",
        wrapper: "td",
        errorPlacement: function(error, element) {
          error.insertBefore( element.parent().parent() );
          error.wrap("<tr class='error'></tr>");
          $("<td></td>").insertBefore(error);
        },

        // Add requirements to each of the fields
        rules: {
          name: {
            required: true,
            minlength: 2
          },
          email: {
            required: true,
            email: true
          },
           telephone: {
            required: true,
            minlength: 6
          },
          message: {
            required: true,
            minlength: 10
          }
        },

        // Specify what error messages to display
        // when the user does something horrid
        messages: {
          name: {
            required: "Please enter your name.",
            minlength: jQuery.format("At least {0} characters required.")
          },
          email: {
            required: "Please enter your email.",
            email: "Please enter a valid email."
          },
          telephone: {
            required: "Please enter a phone number.",
            minlength: jQuery.format("At least {0} characters required.")

          },
          message: {
            required: "Please enter a message.",
            minlength: jQuery.format("At least {0} characters required.")
          }
        },

        // Use Ajax to send everything to quote.php
        submitHandler: function(form) {
          $("#send").attr("value", "Sending...");
          $(form).ajaxSubmit({
            target: "#response",
            success: function(responseText, statusText, xhr, $form) {
              $(form).slideUp("fast");
              $("#response").html(responseText).hide().slideDown("fast");
            }
          });
          return false;
        }
      });
    });
4

2 回答 2

1
$headers = 'Content-Type: text/html; charset=utf-8';

您将其作为 HTML 电子邮件发送,因此您的换行符将被忽略。

您可以将它们更改为 HTML 换行符(将 更改\n<br />,正如 Mathieu Imbert 上面所建议的那样。但由于您没有在消息中使用 HTML,您可以完全从标题中删除该行。

于 2012-08-09T19:39:26.397 回答
0

对于某些电子邮件客户端,例如 Outlook,您需要使用:

\r\n

如果您以 HTML 格式发送电子邮件,请使用:

<br />
于 2012-08-09T19:06:09.480 回答