Я пытаюсь отправить посетителей своего сайта и электронную почту с некоторыми указаниями и советами, прежде чем они появятся в моей студии через почтовую форму PHP-формы. (я упрощаю некоторые поля формы)
Однако форматирование HTML работает некорректно …. Я правильно не объявлял тип кодировки mime?
<?php if (isset($_POST['submit'])) { //if (empty ($_POST['name']) || empty($_POST['email'])) //{ //echo"<div class='error'>Error<br />You did not fill in a required field, please review your form and correct the missing information. <a class='close' href='#'>close</a></div>"; //} $name = $_POST['name']; $email = $_POST['email']; $email2 = $_POST['email2']; //A bunch of other fields are here //Additional Headers $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //$yoursite = "My Site"; //$youremail = $email; $subject = "Website Form"; $message = " $name would like you to contact them about your service. Contact PH: $phone Email: $email Legal Guardian: $legal //more stuff here "; $subject2 = "Directions and Information"; $message2 = "<html><head></head><body> $message2 .= "<h1>Directions</h1> <p>text</p> <p><a href='http://example.com/schedules'>Click here</a> <h2>How Do I find your Photo Studio?</h2> <h2>What do I have to bring with me?</h2> </p>"; $message2 .= "</body></html>"; $email3 = "me@mysite.com"; $email4 = "mysite@gmail.com"; //This email sends their details to me from the visitor mail($email3, $subject, $message, "From: $email"); //This email sends directions to the visitor from me mail($email, $subject2, $message2, "From: $email4"); echo"<div class='thankyou'>Thank you for contacting us,<br /> we will respond as soon as we can.</div>"; } ?>
Существует много случайных нежелательных сообщений, которые необходимо выполнить для отправки электронной почты правильно. Обычно я обычно передаю всю эту ответственность на предварительно упакованный класс, который существует в дикой природе, что-то вроде http://swiftmailer.org/
Может быть, у кого-то будет лучший класс.
Клянусь пакетом PEAR Mail_Mime. Это просто и мощно.
PEAR: Mail_Mime
//Basic mail headers $headers['To'] = "test@domain.com"; $headers['From'] = "sender@domain.com"; $headers['Subject'] = "Test"; //Set up the mail module $mime = new Mail_mime("\r\n"); $mime->setTXTBody("This is a test"); $mime->setHTMLBody("<p>This is a test.</p>"); $body = $mime->get(); $headers = $mime->headers($headers); //Send the message via SMTP $mail_obj =& Mail::factory('smtp', array('host' => 'mail.domain.com', 'port' => 25)); $mail_obj->send($headers['To'], $headers, $body);