2014-01-25 31 views
0

我目前正在嘗試創建表單,以便人們可以選擇與每個對應於某個人和電子郵件地址的複選框數量。然後,他們可以填寫表格的其餘部分,並將電子郵件發送給他們選擇的每個人。這是迄今爲止的代碼,它似乎沒有工作。任何線索和想法將是巨大的php電子郵件:使用複選框的多個沉澱劑

形式

<form action="mail.php" method="post" name="contact_form"> 
<input type="checkbox" name="emails" value="name1" id="thing"/><label for="thing" class="name1"></label> 
<input type="checkbox" name="emails" value="name2" id="thing2"/><label for="thing2" class="name2"></label> 
<input type="checkbox" name="emails" value="name3" id="thing3"/><label for="thing3" class="name3"></label> 
<input type="checkbox" name="emails" value="name4" id="thing4"/><label for="thing4" class="name4"></label> 
<input type="checkbox" name="emails" value="name5" id="thing5"/><label for="thing5" class="name5"></label> 
<input type="checkbox" name="emails" value="name6" id="thing6"/><label for="thing6" class="name6"></label> 
<input type="checkbox" name="emails" value="name7" id="thing7"/><label for="thing7" class="name7"></label> 
<input type="checkbox" name="emails" value="name8" id="thing8"/><label for="thing8" class="name8"></label> 
<input type="checkbox" name="emails" value="name9" id="thing9"/><label for="thing9" class="name9"></label> 
<div class="title_bar">Name</div> 
<input type="text" name="name" placeholder="John Urbanist" required/> 
<div class="title_bar">Email</div> 
<input type="email" name="from_email" placeholder="[email protected]" required/> 
<div class="title_bar" style="height:202px;">Additional Comments</div><textarea name="additional" maxlength="300" required></textarea> 
<div style="clear:both;display:block;"></div> 
<button class="buttonsend submit" type="submit">Send Letter</button> 
</form> 

Mail.php

$mails = array(
'[email protected]' => 'name1', 
'[email protected]' => 'name2', 
'[email protected]' => 'name3', 
'[email protected]' => 'name4', 
'[email protected]' => 'name5', 
'[email protected]' => 'name6', 
'[email protected]' => 'name7', 
'[email protected]' => 'name8', 
'[email protected]' => 'name9' 
); 
$name = $_REQUEST["name"]; 
$subject = 'Hello'; 
$additional = $_REQUEST["additional"]; 
$from_email = $_REQUEST["from_email"]; 
$headers = "From: ".$from_email."\r\n" . 
"X-Mailer: php"; 

foreach ($_POST['emails'] as $value) { 
if (in_array($value, $mails)) { 
$addrs = array_keys($mails, $value); 

foreach ($addrs as $addr) { 
if (mail($addr, $subject, $additional, $headers)) { 
echo("Message sent!"); 
} else { 
echo("Message delivery failed..."); 
} 
} 
} 
} 
+0

什麼錯誤,你好嗎? – Rossco

+0

沒什麼它只是沒有發送任何東西 –

+0

你試過php郵件類嗎? http://phpmailer.worxware.com/ 困難是爲所有客戶端構建標題 –

回答

1

隨着PHP-郵件http://phpmailer.worxware.com/你有很多的選項來設置像

$userMail = new phpmailer; 
    $userMail->IsMail(); 
    $userMail->IsHTML(true); 
    $userMail->Priority = 3; 
    $userMail->CharSet = 'utf-8'; 
    //... 
    $userMail->From = '[email protected]'; 
    $userMail->FromName = SITE_OWNERS; 

    foreach($whatever as $key => $what) { 
     $userMail->AddAddress($key, $what); 
    } 
    //etc... 
    $userMail->WordWrap = 50; 
    //etc... 

並在末尾

if($userMail->Send()){ 
    //do yes 
} else { 
    //do no 
} 

AND什麼rossco說!

2

您需要將[]添加到複選框的名稱,以便將其理解爲數組。

形式

<form action="mail.php" method="post" name="contact_form"> 
    <input type="checkbox" name="emails[]" value="name1" id="thing"/><label for="thing" class="name1"></label> 
    <input type="checkbox" name="emails[]" value="name2" id="thing2"/><label for="thing2" class="name2"></label> 
    <input type="checkbox" name="emails[]" value="name3" id="thing3"/><label for="thing3" class="name3"></label> 
    <input type="checkbox" name="emails[]" value="name4" id="thing4"/><label for="thing4" class="name4"></label> 
    <input type="checkbox" name="emails[]" value="name5" id="thing5"/><label for="thing5" class="name5"></label> 
    <input type="checkbox" name="emails[]" value="name6" id="thing6"/><label for="thing6" class="name6"></label> 
    <input type="checkbox" name="emails[]" value="name7" id="thing7"/><label for="thing7" class="name7"></label> 
    <input type="checkbox" name="emails[]" value="name8" id="thing8"/><label for="thing8" class="name8"></label> 
    <input type="checkbox" name="emails[]" value="name9" id="thing9"/><label for="thing9" class="name9"></label> 
    <div class="title_bar">Name</div> 
    <input type="text" name="name" placeholder="John Urbanist" required/> 
    <div class="title_bar">Email</div> 
    <input type="email" name="from_email" placeholder="[email protected]" required/> 
    <div class="title_bar" style="height:202px;">Additional Comments</div><textarea name="additional" maxlength="300" required></textarea> 
    <div style="clear:both;display:block;"></div> 
    <button class="buttonsend submit" type="submit">Send Letter</button> 
    </form> 

mail.php

<?php 
    //print_r($_POST['emails']); 
    $mails = array(
    '[email protected]' => 'name1', 
    '[email protected]' => 'name2', 
    '[email protected]' => 'name3', 
    '[email protected]' => 'name4', 
    '[email protected]' => 'name5', 
    '[email protected]' => 'name6', 
    '[email protected]' => 'name7', 
    '[email protected]' => 'name8', 
    '[email protected]' => 'name9' 
    ); 
    $name = $_REQUEST["name"]; 
    $subject = 'Hello'; 
    $additional = $_REQUEST["additional"]; 
    $from_email = $_REQUEST["from_email"]; 
    $headers = "From: ".$from_email."\r\n" . 
    "X-Mailer: php"; 

    foreach ($_POST['emails'] as $value) { 
    if (in_array($value, $mails)) { 
    $addrs = array_keys($mails, $value); 

    foreach ($addrs as $addr) { 
    if (mail($addr, $subject, $additional, $headers)) { 
    echo("Message sent!"); 
    } else { 
    echo("Message delivery failed..."); 
    } 
    } 
    } 
    } ?> 
+0

這是工作的一些電子郵件,但不爲別人?你知道這是爲什麼嗎? –

+1

當我運行它與所有複選框選中所有生成的郵件功能成功運行。 – Rossco

相關問題