У меня есть эта форма, которая завершена и работает нормально, когда форма отправлена, информация отправляется по электронной почте на идентификатор электронной почты, но все содержимое отображается обычным текстом, когда он доставляет. Я хочу, чтобы, когда информация о форме достигает идентификатора электронной почты, она должна имена полей выделены жирным шрифтом.
<?php $errors = ''; $myemail = 'abc@email.com';//<-----Put Your email address here. if( empty ($_POST['fullname']) || empty ($_POST['martialstatus']) || empty ($_POST['dateofbirth']) || empty ($_POST['email']) || empty ($_POST['telephone']) || empty ($_POST['cell']) || empty ($_POST['graduation']) || empty ($_POST['yearatt']) || empty ($_POST['department']) || empty ($_POST['program']) || empty ($_POST['permanentaddress']) || empty ($_POST['currentemp']) || empty ($_POST['designation']) || empty ($_POST['selfemp']) || empty ($_POST['officeemail']) || empty ($_POST['officetele']) || empty ($_POST['portfolio']) || empty ($_POST['membership'])) { $errors .= "\n Error: all fields are required"; } $fullname = $_POST['fullname']; $martialstatus = $_POST['martialstatus']; $dateofbirth = $_POST['dateofbirth']; $email = $_POST['email']; $telephone = $_POST['telephone']; $cell = $_POST['cell']; $graduation = $_POST['graduation']; $yearatt = $_POST['yearatt']; $department = $_POST['department']; $program = $_POST['program']; $permanentaddress = $_POST['permanentaddress']; $currentemp = $_POST['currentemp']; $designation = $_POST['designation']; $selfemp = $_POST['selfemp']; $officeemail = $_POST['officeemail']; $officetele = $_POST['officetele']; $portfolio = $_POST['portfolio']; $membership = $_POST['membership']; if( empty($errors)) { $to = $myemail; $email_subject = "Membership Information: $fullname"; $email_body = "You have received a new message. ". " Here are the details:\n Personal Information \n\n Name: $fullname \n Martial Status: $martialstatus \n Date of Birth: $dateofbirth \n Email: $email \n Telephone: $telephone \n Cell: $cell \n Year of Graduation: $graduation \n Years Attended: $yearatt \n Department: $department \n Program Attended: $program \n Permanent Address: $permanentaddress \n\n Career Information \n\n Currently Employeed with: $currentemp \n Designation: $designation \n Self Employeed: $selfemp \n Office Email: $officeemail \n Office Telephone: $officetele \n Portfolio: $portfolio \n\n MemberShip \n\n Type of MemberShip: $membership \n\n "; $headers = "From: $myemail\n"; $headers .= "Reply-To: $email"; mail($to,$email_subject,$email_body,$headers); //redirect to the 'thank you' page header('Location: contact-form-thank-you.html'); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Contact form handler</title> </head> <body> <!-- This page is displayed only if there is some error --> <?php echo nl2br($errors); ?> </body> </html>
Полужирный текст можно сделать с помощью электронной почты HTML, задать заголовок типа содержимого:
$headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html;\r\n";
Используйте <strong>
:
<strong>Name:</strong> $fullname <br />
Не забывайте, что \n
не покажет новую строку в HTML-письме, вам нужно будет использовать <br />
.
Обязательно отправьте электронное письмо в формате HTML и измените соответствующую строку на
Email: <b>$email</b> \n
Обязательно добавьте заголовки, как указано в документации на странице почты.
$headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
затем используйте разметку, чтобы составить свой адрес электронной почты.
Вам нужно будет добавить заголовок Content-type
и добавить теги HTML к отправляемому электронному письму. Так:
$headers = "From: $myemail\n"; $headers .= "Reply-To: $email\n"; $headers .= "Content-type: text/html";
Кроме того, вам нужно будет перевести \n
на разрывы строк HTML, так что:
$email_body = nl2br($email_body); mail($to,$email_subject,$email_body,$headers);
Заголовки всегда должны заканчиваться на `\ r \ n"
Это не верно
$headers = "From: $myemail\n"; $headers .= "Reply-To: $email";
Это должно быть так
$headers = "From: $myemail\r\n"; $headers .= "Reply-To: $email\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
Вам нужно добавить теги HTML в свою почту
пример
Name: <strong>$fullname</strong><br />
Я свободно переписывался, в основном потому, что так много повторений и огромной проблемы безопасности.
Можно было бы сделать еще несколько дальнейших улучшений, но это осталось как упражнение для читателя.
<?php $errors = ''; $myemail = 'abc@email.com';//<-----Put Your email address here. $fields = array( 'fullname' => 'Name', 'martialstatus' => 'Martial Status', 'dateofbirth' => 'Date of Birth', 'email' => 'Email', 'telephone' => 'Telephone', 'cell' => 'Cell', 'graduation' => 'Year of Graduation', 'yearatt' => 'Years Attended', 'department' => 'Department', 'program' => 'Program Attended', 'permanentaddress' => 'Permanent Address', 'currentemp' => 'Currently Employeed with', 'designation' => 'Designation', 'selfemp' => 'Self Employeed', 'officeemail' => 'Office Email', 'officetele' => 'Office Telephone', 'portfolio' => 'Portfolio', 'membership' => 'Type of MemberShip', ); // Don't allow HTML in form. foreach ($_POST as $key => $value) { $_POST[$key] = strip_tags($value); } $missing_fields = array_diff_assoc($fields, $_POST); if (count($missing_fields) > 0) { $errors .= "\n Error: all fields are required"; } if (empty($errors)) { $to = $myemail; $email_subject = 'Membership Information: ' . $_POST['fullname']; $email_body = 'You have received a new message. Here are the details:<br /> Personal Information <br/ ><br/ >'; foreach (array('fullname', 'martialstatus', 'dateofbirth', 'email', 'telephone', 'cell', 'graduation', 'yearatt', 'department', 'program', 'permanentaddress') as $key) { $email_body .= $fields[$key] . ': <strong>' . $_POST[$key] . "</strong><br />"; } $email_body .= "Career Information <br /><br />"; foreach (array('currentemp', 'designation', 'selfemp', 'officeemail', 'officetele', 'portfolio') as $key) { $email_body .= $fields[$key] . ': <strong>' . $_POST[$key] . "</strong><br />"; } $email_body .= "MemberShip <br /><br />"; foreach (array('membership') as $key) { $email_body .= $fields[$key] . ': <strong>' . $_POST[$key] . "</strong><br />"; } $headers = "From: $myemail\r\n"; $headers .= "Reply-To: $myemail\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($to,$email_subject,$email_body,$headers); //redirect to the 'thank you' page header('Location: contact-form-thank-you.html'); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Contact form handler</title> </head> <body> <!-- This page is displayed only if there is some error --> <?php echo nl2br($errors); ?> </body> </html>