PHP разработки
PHP: Отсылка письма с корректными заголовками
Наверняка вы часто встречали ситуацию когда письма не доходили до адресатов на @mail.ru
Все дело в том что некоторые из защит от спама считают неправильно составленные письма не просто спамом, а даже опасным спамом, и безвозвратно удаляют их, даже не помещая в папку "Сомнительные"
Тут я приведу пример скрипта, который отсылает почту корректно, и она всегда доставляется адресату, даже не попадая в ящик "Сомнительные"
sendmail: Корректная отсылка письма
<? $body = <<<END Это мое <b>Письмо</b> END; $subject="Заявка с сайта"; $to="[email protected]"; $from_email="[email protected]"; $subject="Робот заказов"; if (sendmail($subject,$body,$to,$from_email,$from_name,'html')){ print "Заявка ушла"; } else { print "Ошибка отправки письма"; } function sendmail($subject,$body,$to,$from_email,$from_name,$type='html') { $headers = "X-PHP-Script: ".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]." for ".$_SERVER['SERVER_ADDR']."\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Return-path: <".$from_email.">\r\n"; $headers .= "Content-type: text/".$type."; format=flowed; charset=koi8-r; reply-type=original\r\n"; $headers .= "Content-Transfer-Encoding: 8bit\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "X-MSMail-Priority: Normal\r\n"; $headers .= "X-Mailer: Automatic PHP Script\r\n"; $headers .= "From:=?koi8-r?B?".base64_encode(convert_cyr_string($from_name,"w","k"))."?= <".$from_email.">\r\n"; $subject = convert_cyr_string($subject,"w","k"); $subject = base64_encode($subject); $subject = "=?koi8-r?B?".$subject."?="; $body=convert_cyr_string($body,"w","k"); return(mail($to,$subject,$body,$headers)); } ?>
Возможно со временем спамозащита поднимется на новый уровень и необходимо будет доработать этот скрипт, но на данное время он работает как часы.
Автор: Козыч Антон