Функция mail() php

109
23 августа 2019, 15:50

Вот код php

<?php 
 
$recepient = "myemail@gmail.com"; 
$sitename = "mysite"; 
 
$phone = trim($_POST["phone"]); 
$text = trim($_POST["text"]); 
$country = trim($_POST["country"]); 
$email = trim($_POST["email"]); 
 
$message = " 
<!DOCTYPE html> 
<html> 
<head> 
  <title></title> 
</head> 
<body> 
$country $phone $text 
 
</body> 
</html> 
 
"; 
$pagetitle = "Новая заявка с сайта \"$sitename\""; 
mail($recepient, $pagetitle, $message, "Content-type: text/html; charset=\"utf-8\"\n From: $name <$email>");

После него мне приходит сообщение такого содержания От:адрес моего хостинга Сообщение: austria 063-111-11-11 такой то текст

После выполнения такого кода (взят из документации php https://www.w3schools.com/php/func_mail_mail.asp)

<?php 
$to = "myemail@gmail.com"; 
$subject = "HTML email"; 
 
 
$phone = trim($_POST["phone"]); 
$text = trim($_POST["text"]); 
$country = trim($_POST["country"]); 
$email = trim($_POST["email"]); 
 
$message = " 
<html> 
<head> 
<title>HTML email </title> 
</head> 
<body> 
$phone  $text $country 
</body> 
</html> 
"; 
 
// Always set content-type when sending HTML email 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
 
// More headers 
$headers .= 'From: <$email>' . "\r\n"; 
 
mail($to,$subject,$message,$headers); 
?>

Приходит вообще пустой e-mail. Почему так происходит если классы одинаковые. Как мне сделать чтобы приходило не austria, а Австрия чтобы в отправитель можно было поставить переменную с e-mail и чтобы стилизовать сообщение?

Answer 1

Попробуйте такие заголовки:

$headers = 'From: <'.$email.'>' . "\r\n" .
        'MIME-Version: 1.0' . "\r\n" .
        'Content-type: text/html; charset: utf8';

Обверните также переменные в кавычки например

<body>".$phone."<br>".$text."<br>".$country."</body>

Касательно austria => Австрия здесь нужна транслитерация например Транслитерация

А если транслитерация не нужна и это будет просто список стран, тогда можно использовать такой массив:

$country = trim($_POST["country"]);
$countries = ['austria' => 'Австрия', 'germania' => 'Германия'];
$message = $phone."<br>".$text."<br>".$countries[$country];
READ ALSO
POST запросы на file_get_contents или fsockopen

POST запросы на file_get_contents или fsockopen

у меня есть сайт на козе, мне нужно к нему через API делать POST запросы, НО из за отсутствия CURL на бесплатном хостинге, я не понимаю как сделать...

110
INSERT or UPDATE mysql, php

INSERT or UPDATE mysql, php

Не знаю как реализовать данную задачу(таблица cron_planning_figure):

107
Как наследовать шаблонный класс?

Как наследовать шаблонный класс?

Как создать обычный (не шаблонный класс), который наследовал бы шаблонный без явного определения типа? Хочу сделать подобие итератора,

136
Подключение к веб-серверу из глобальной сети

Подключение к веб-серверу из глобальной сети

Я пишу свой веб-сервер на C++Планируется подключаться к нему с браузера, а он в ответ должен выдавать html-странички

119