2013-12-11 35 views
1

有很多關於此的其他文章。我經歷了幾次嘗試數組並在$ to字段等中輸入電子郵件,但是如果指定了一封電子郵件,我的表單只會繼續發送。我究竟做錯了什麼?我也是PHP noob。獲取此PHP表單發送給多個收件人?

<?php 
// EVALUATION FORM 
$your_email = '[email protected], [email protected]'; 

session_start(); 
$errors  = ''; 
$name   = ''; 
$visitor_email = ''; 
$phone   = ''; 

if (isset($_POST['submit'])) { 

    $name   = $_POST['name']; 
    $visitor_email = $_POST['email']; 
    $phone   = $_POST['phone']; 
    ///------------Do Validations------------- 
    if (empty($name) || empty($visitor_email)) { 
     $errors .= "\n Form was not submitted. Please fill out all the fields. "; 
    } 
    if (IsInjected($visitor_email)) { 
     $errors .= "\n Bad email value!"; 
    } 
    if (empty($_SESSION['6_letters_code']) || strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0) { 
     //Note: the captcha code is compared case insensitively. 
     //if you want case sensitive match, update the check above to 
     // strcmp() 
     $errors .= "\n The captcha code does not match!"; 
    } 

    if (empty($errors)) { 
     //send the email 
     $to  = $your_email; 
     $subject = "Free Injury Evaluation form submission from Northwest Injury Centers"; 
     $from = $your_email; 
     $ip  = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; 

     $body = "$name submitted the Free Injury Evaluation form:\n\n" . "Name: $name\n" . "Email: $visitor_email \n" . "Phone: $phone \n" . "IP: $ip\n"; 

     $headers = "From: $from \r\n"; 
     $headers .= "Reply-To: $visitor_email \r\n"; 

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

     header('Location: thankyou.php'); 
    } 
} 

// Function to validate against any email injection attempts 
function IsInjected($str) 
{ 
    $injections = array(
     '(\n+)', 
     '(\r+)', 
     '(\t+)', 
     '(%0A+)', 
     '(%0D+)', 
     '(%08+)', 
     '(%09+)' 
    ); 
    $inject  = join('|', $injections); 
    $inject  = "/$inject/i"; 
    if (preg_match($inject, $str)) { 
     return true; 
    } else { 
     return false; 
    } 
} 
?> 
+0

您能否提供您在窗體中發送的值? – Novak

+0

爲什麼不添加「cc:」到標題,就像這個答案http://stackoverflow.com/questions/3582126/php-mail-cc-field – vogomatix

+0

Google是你的朋友。一個簡單的'發送電子郵件到多個地址在PHP'搜索將帶來很多有用的信息。 – MikeF

回答

0

您可以添加抄送給您的郵件header

$headers .= 'Cc: [email protected]' . "\r\n"; 

這將拷貝發送到以上to電子郵件的地址提到電子郵件。

0

這將工作:

$email_to = "[email protected],[email protected],[email protected]"; 

富勒可讀性起見在代碼中使用數組和內爆到一個逗號分隔字符串:

$recipients = array(
    "[email protected]", 
    // more emails 
); 
$email_to = implode(',', $recipients); // your email address 
$email_subject = "Contact Form Message"; // email subject line 
$thankyou = "thankyou.htm"; // thank you page 
+0

謝謝!你和上面的回覆爲我解決了這個問題。多謝。 – user2109656

3

您可以提供多個收件人,但是你只能提供一個發件人。由於您在$to$from中均使用$your_email,因此您正試圖發送包含多個發件人的電子郵件。

+0

謝謝!我知道這是一些愚蠢的小事。我做了一個$ email_to並指定了多個電子郵件。然後,我在$ to = $ email_to中指定了$ email_to變量;表單起作用了! – user2109656

+0

好!如果這個答案解決了你的問題,請[接受它](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 –

相關問題