将多个电子邮件地址添加到 php 电子邮件表单
Adding multiple email addresses to php email form
我为我网站的联系我们页面创建了一个 php 电子邮件表单,并希望对多个电子邮件地址使用相同的表单。但是,当我将代码复制到新页面并添加不同的电子邮件地址时,它会转到与原始联系表单相同的电子邮件地址。
我改
$email_to = 'example@gmail.com, customer@website.com';
发送到不同的邮箱,但是不起作用,一直发送到原来的邮箱。
如何使此表单可用于多个电子邮件表单的多个电子邮件?
<?php
// Set email variables
$email_to = 'SARAI.ROMEROEVANS@lausd.net, customer@website.com';
$email_subject = 'Contact Form Submission Bancroft Website';
// Set required fields
$required_fields = array('fullname','email','comment');
// set error messages
$error_messages = array(
'fullname' => 'Please enter a Name to proceed.',
'email' => 'Please enter a valid Email Address to continue.',
'comment' => 'Please enter your Message to continue.'
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
}
// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content);
// Update form switch
$form_complete = TRUE;
}
}
function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}
?>
如果您需要更多代码,请告诉我
据我所知,您不能在 mail() 函数的第一个参数中指定多个电子邮件地址。编辑 - 你可以,但我认为这是不可能的,因为它在过去引起了我的问题。
这是您的代码的编辑版本。我用逗号将 $email_to 分开,然后遍历每个电子邮件地址以向每个电子邮件地址发送一封电子邮件。
我还添加了一些 if 语句来控制收件人是谁。如果您要为多个表单重复使用代码,则将 formID
作为隐藏字段传递,然后您可以在 PHP 中指定谁应该接收电子邮件。无需为每个表单复制 PHP 代码然后...
<?php
// Set email variables
if($_POST['formID'] == 1) {
$email_to = 'SARAI.ROMEROEVANS@lausd.net, customer@website.com';
} elseif($_POST['formID'] == 2) {
$email_to = 'test@test.com, customer@website.com';
} else {
$email_to = 'blah@blah.com, customer@website.com';
}
$email_subject = 'Contact Form Submission Bancroft Website';
// Set required fields
$required_fields = array('fullname','email','comment');
// set error messages
$error_messages = array(
'fullname' => 'Please enter a Name to proceed.',
'email' => 'Please enter a valid Email Address to continue.',
'comment' => 'Please enter your Message to continue.'
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
}
// if validation passed ok then send the email
$email = explode(',', $email_to);
foreach($email as $e) {
$e = trim($e);
mail($e, $email_subject, $email_content);
}
// Update form switch
$form_complete = TRUE;
}
}
function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}
?>
我为我网站的联系我们页面创建了一个 php 电子邮件表单,并希望对多个电子邮件地址使用相同的表单。但是,当我将代码复制到新页面并添加不同的电子邮件地址时,它会转到与原始联系表单相同的电子邮件地址。
我改
$email_to = 'example@gmail.com, customer@website.com';
发送到不同的邮箱,但是不起作用,一直发送到原来的邮箱。
如何使此表单可用于多个电子邮件表单的多个电子邮件?
<?php
// Set email variables
$email_to = 'SARAI.ROMEROEVANS@lausd.net, customer@website.com';
$email_subject = 'Contact Form Submission Bancroft Website';
// Set required fields
$required_fields = array('fullname','email','comment');
// set error messages
$error_messages = array(
'fullname' => 'Please enter a Name to proceed.',
'email' => 'Please enter a valid Email Address to continue.',
'comment' => 'Please enter your Message to continue.'
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
}
// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content);
// Update form switch
$form_complete = TRUE;
}
}
function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}
?>
如果您需要更多代码,请告诉我
据我所知,您不能在 mail() 函数的第一个参数中指定多个电子邮件地址。编辑 - 你可以,但我认为这是不可能的,因为它在过去引起了我的问题。
这是您的代码的编辑版本。我用逗号将 $email_to 分开,然后遍历每个电子邮件地址以向每个电子邮件地址发送一封电子邮件。
我还添加了一些 if 语句来控制收件人是谁。如果您要为多个表单重复使用代码,则将 formID
作为隐藏字段传递,然后您可以在 PHP 中指定谁应该接收电子邮件。无需为每个表单复制 PHP 代码然后...
<?php
// Set email variables
if($_POST['formID'] == 1) {
$email_to = 'SARAI.ROMEROEVANS@lausd.net, customer@website.com';
} elseif($_POST['formID'] == 2) {
$email_to = 'test@test.com, customer@website.com';
} else {
$email_to = 'blah@blah.com, customer@website.com';
}
$email_subject = 'Contact Form Submission Bancroft Website';
// Set required fields
$required_fields = array('fullname','email','comment');
// set error messages
$error_messages = array(
'fullname' => 'Please enter a Name to proceed.',
'email' => 'Please enter a valid Email Address to continue.',
'comment' => 'Please enter your Message to continue.'
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
}
// if validation passed ok then send the email
$email = explode(',', $email_to);
foreach($email as $e) {
$e = trim($e);
mail($e, $email_subject, $email_content);
}
// Update form switch
$form_complete = TRUE;
}
}
function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}
?>