2017-05-05 18 views
1

私は非常に簡単な電子メール連絡フォームを持っていますA)複数のアドレスに送信されるフォームフィールドの入力、B) 1つを除くすべての受信者から除外するデータ。php電子メールフォーム:複数のアドレスに送信し、入力からデータを除外

私はパートAを解決しました。しかし、パートBは難しいと判明しています。私は単なる中間的なWebデザイナーであり、コーディングでプロとしての役割はありません。すべてを受け取るために、フォームからのすべてのデータを受信し、他のすべての電子メールアドレス複数のアドレスの作品への送信、だから、再び

<?php 
if(isset($_POST['email'])) { 

$email_to = "[email protected],[email protected],[email protected]"; 
$email_subject = "Your email subject line"; 

function died($error) { 
    echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
    echo "These errors appear below.<br /><br />"; 
    echo $error."<br /><br />"; 
    echo "Please go back and fix these errors.<br /><br />"; 
    die(); 
} 

if(!isset($_POST['first_name']) || 
    !isset($_POST['last_name']) || 
    !isset($_POST['business_name']) || 
    !isset($_POST['email']) || 
    !isset($_POST['telephone']) || 
    !isset($_POST['comments'])) { 
    died('We are sorry, but there appears to be a problem with the form you submitted.');  
} 



$first_name = $_POST['first_name']; // required 
$last_name = $_POST['last_name']; // required 
$business_name = $_POST['business_name']; // required 
$email_from = $_POST['email']; // required 
$telephone = $_POST['telephone']; // not required 
$comments = $_POST['comments']; // required 

$error_message = ""; 
$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 

if(!preg_match($email_exp,$email_from)) { 
$error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
} 

$string_exp = "/^[A-Za-z .'-]+$/"; 

if(!preg_match($string_exp,$first_name)) { 
$error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
} 

if(!preg_match($string_exp,$last_name)) { 
$error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 
} 

if(strlen($comments) < 2) { 
$error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
} 

if(strlen($error_message) > 0) { 
died($error_message); 
} 

$email_message = "Form details below.\n\n"; 


function clean_string($string) { 
    $bad = array("content-type","bcc:","to:","cc:","href"); 
    return str_replace($bad,"",$string); 
} 



$email_message .= "First Name: ".clean_string($first_name)."\n"; 
$email_message .= "Last Name: ".clean_string($last_name)."\n"; 
$email_message .= "Business Name: ".clean_string($business_name). "\n"; 
$email_message .= "Email: ".clean_string($email_from)."\n"; 
$email_message .= "Telephone: ".clean_string($telephone)."\n"; 
$email_message .= "Comments: ".clean_string($comments)."\n"; 

$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 
?> 

Thank you for contacting us. We will be in touch with you very soon. 


<?php 

} 
?> 

が、私は基本的に最初のメールを持っているしたいと思います:以下のソースコードを探します彼らの電子メールの電子メールアドレス行。

ありがとうございました!

+0

電子メールアドレスが「無効」なので拒否されたことがある人は、電子メールをチェックする正規表現が**正しくないことを指摘する必要があります。代わりに 'filter_var($ email、FILTER_VALIDATE_EMAIL)'を使用してください。 –

+0

電子メールのどのパターンが通常拒否反応を起こすか、alexですか? –

+0

@ManuelOttoプラス記号。 –

答えて

0

'、'で$ email_toを解凍し、配列を繰り返し処理してコンテンツを作成して送信します。

foreach($aMails as $sMail) { 
    if($sMail == '[email protected]') { 
     //do the content stuff here 
    } 
    @mail($sMail, $email_subject, $email_message, $headers); 
} 
+0

ちょっとmanuxi、ありがとう! – user3562893

+0

ちょっと分かりました(私はこの問題を解決することができた場合に備えて)、あなたが書いたコードをカットすれば、コードの先頭に$ email_to行が上書きされます。 「//ここでコンテンツを処理する」とは、すべての情報を受信したい電子メールに電子メールに含めるべきすべてのものを入れることを意味します。 – user3562893

+0

"//ここでコンテンツを処理する"とは、特別なメールアドレスをインポートするだけです。もちろん、すべてのコンテンツに必要なものを何度も何度もやりたいとは思わない... – manuxi

関連する問題