Мы создали эту контактную форму давным-давно, но у нас недавно были проблемы с нашим sendmail, теперь мне нужно изменить это, чтобы использовать SMTP и что я еще не делал этого раньше. Является ли это большой работой или просто изменением нескольких строк? Любые советы приветствуются.Изменение формы php sendmail на SMTP?
Вы можете увидеть весь наш сценарий здесь, это очень просто ...
<?php
if(!$_POST) exit;
function tommus_email_validate($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\./', $email);
}
$name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $comments = $_POST['comments'];
if(trim($name) == '') {
exit('<div class="error_message">You must enter your name.</div>');
} else if(trim($name) == 'Name') {
exit('<div class="error_message">You must enter your name.</div>');
} else if(trim($email) == '') {
exit('<div class="error_message">Please enter a valid email address.</div>');
} else if(!tommus_email_validate($email)) {
exit('<div class="error_message">You have entered an invalid e-mail address.</div>');
} else if(trim($comments) == 'Tell us what you think!') {
exit('<div class="error_message">Please enter your message.</div>');
} else if(trim($comments) == '') {
exit('<div class="error_message">Please enter your message.</div>');
} else if(strpos($comments, 'href') !== false) {
exit('<div class="error_message">Please leave links as plain text.</div>');
} else if(strpos($comments, '[url') !== false) {
exit('<div class="error_message">Please leave links as plain text.</div>');
} if(get_magic_quotes_gpc()) { $comments = stripslashes($comments); }
$address = '[email protected]';
$e_subject = 'You\'ve been contacted by ' . $name . '.';
$e_body = "You have been contacted by $name from your contact form, their additional message is as follows." . "\r\n" . "\r\n";
$e_content = "\"$comments\"" . "\r\n" . "\r\n";
$e_reply = "You can contact $name via email, $email (or by phone if supplied: $phone)";
$msg = wordwrap($e_body . $e_content . $e_reply, 70);
$headers = "From: $email" . "\r\n";
$headers .= "Reply-To: $email" . "\r\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/plain; charset=utf-8" . "\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable" . "\r\n";
if(mail($address, $e_subject, $msg, $headers)) {
echo "<fieldset><div id='success_page'><p>Thank you $name, your message has been submitted to us.</p></div></fieldset>";
}
Вы пытаетесь использовать свой собственный сервер SMTP для отправки этих писем, что является размещен на другой машине? Я использую postfix для ввода моего сообщения электронной почты и просто использую [relayhost] (http://www.postfix.org/postconf.5.html#relayhost), чтобы направить туда письмо. –
У меня есть собственный SMTP-сервер, проблема заключается в изменении текущего сценария выше, чтобы использовать SMTP, а не sendmail, как сейчас. –