Я не могу добавить комментарий к ответу Мухаммеда Сакиба, но я хотел сказать, что вы не должны использовать <br>
в качестве замены для \r\n
, потому что это может привести к тому, что письмо будет слишком длиннымспам-фильтры.Новые строки важны для того, чтобы сделать электронную почту более понятной и обеспечить успешную доставку!
Я рекомендую следующий метод:
$output[] = "line 1";
$output[] = "line 2";
$EmailBody = join("\r\n",$output);
Также вы должны убедиться, что вы «дезинфицируете» заголовки, чтобы избежать внедрения заголовкаИсходя из пользовательского ввода, вот функция, которая дважды останавливает инъекцию:
function sanitize(&$data){
return str_ireplace(array("\r", "\n", "%0a", "%0d"), '', stripslashes($data));
}
$headers = 'From: '.sanitize($email);
Если вы хотите, чтобы теги HTML отображались в электронном письме, измените тип с помощью заголовка:
$headers = 'Content-type: text/html;\r\nFrom: '.sanitize($email);
Если вы отображали HTML, вы должны очистить вводимые пользователем данные, чтобы избежать чего-либо неожиданного ... например, HTML-инъекция.Используйте эту функцию везде, где вы отображаете пользовательский ввод в HTML:
function htmlclean($str){
return htmlentities($str, ENT_QUOTES);
}
например, $ body = "Brand Name:".htmlclean ($ фирменный);